{"id":"09e26ca2b8dc10d53267e9a455219eeb","_format":"hh-sol-build-info-1","solcVersion":"0.8.20","solcLongVersion":"0.8.20+commit.a1b79de6","input":{"language":"Solidity","sources":{"@openzeppelin/contracts/access/Ownable.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (access/Ownable.sol)\n\npragma solidity ^0.8.20;\n\nimport {Context} from \"../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 * The initial owner is set to the address provided by the deployer. This can\n * 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    /**\n     * @dev The caller account is not authorized to perform an operation.\n     */\n    error OwnableUnauthorizedAccount(address account);\n\n    /**\n     * @dev The owner is not a valid owner account. (eg. `address(0)`)\n     */\n    error OwnableInvalidOwner(address owner);\n\n    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);\n\n    /**\n     * @dev Initializes the contract setting the address provided by the deployer as the initial owner.\n     */\n    constructor(address initialOwner) {\n        if (initialOwner == address(0)) {\n            revert OwnableInvalidOwner(address(0));\n        }\n        _transferOwnership(initialOwner);\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        if (owner() != _msgSender()) {\n            revert OwnableUnauthorizedAccount(_msgSender());\n        }\n    }\n\n    /**\n     * @dev Leaves the contract without owner. It will not be possible to call\n     * `onlyOwner` functions. Can only be called by the current owner.\n     *\n     * NOTE: Renouncing ownership will leave the contract without an owner,\n     * thereby disabling any functionality that is only available to the owner.\n     */\n    function renounceOwnership() public virtual onlyOwner {\n        _transferOwnership(address(0));\n    }\n\n    /**\n     * @dev Transfers ownership of the contract to a new account (`newOwner`).\n     * Can only be called by the current owner.\n     */\n    function transferOwnership(address newOwner) public virtual onlyOwner {\n        if (newOwner == address(0)) {\n            revert OwnableInvalidOwner(address(0));\n        }\n        _transferOwnership(newOwner);\n    }\n\n    /**\n     * @dev Transfers ownership of the contract to a new account (`newOwner`).\n     * Internal function without access restriction.\n     */\n    function _transferOwnership(address newOwner) internal virtual {\n        address oldOwner = _owner;\n        _owner = newOwner;\n        emit OwnershipTransferred(oldOwner, newOwner);\n    }\n}\n"},"@openzeppelin/contracts/interfaces/IERC1363.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.4.0) (interfaces/IERC1363.sol)\n\npragma solidity >=0.6.2;\n\nimport {IERC20} from \"./IERC20.sol\";\nimport {IERC165} from \"./IERC165.sol\";\n\n/**\n * @title IERC1363\n * @dev Interface of the ERC-1363 standard as defined in the https://eips.ethereum.org/EIPS/eip-1363[ERC-1363].\n *\n * Defines an extension interface for ERC-20 tokens that supports executing code on a recipient contract\n * after `transfer` or `transferFrom`, or code on a spender contract after `approve`, in a single transaction.\n */\ninterface IERC1363 is IERC20, IERC165 {\n    /*\n     * Note: the ERC-165 identifier for this interface is 0xb0202a11.\n     * 0xb0202a11 ===\n     *   bytes4(keccak256('transferAndCall(address,uint256)')) ^\n     *   bytes4(keccak256('transferAndCall(address,uint256,bytes)')) ^\n     *   bytes4(keccak256('transferFromAndCall(address,address,uint256)')) ^\n     *   bytes4(keccak256('transferFromAndCall(address,address,uint256,bytes)')) ^\n     *   bytes4(keccak256('approveAndCall(address,uint256)')) ^\n     *   bytes4(keccak256('approveAndCall(address,uint256,bytes)'))\n     */\n\n    /**\n     * @dev Moves a `value` amount of tokens from the caller's account to `to`\n     * and then calls {IERC1363Receiver-onTransferReceived} on `to`.\n     * @param to The address which you want to transfer to.\n     * @param value The amount of tokens to be transferred.\n     * @return A boolean value indicating whether the operation succeeded unless throwing.\n     */\n    function transferAndCall(address to, uint256 value) external returns (bool);\n\n    /**\n     * @dev Moves a `value` amount of tokens from the caller's account to `to`\n     * and then calls {IERC1363Receiver-onTransferReceived} on `to`.\n     * @param to The address which you want to transfer to.\n     * @param value The amount of tokens to be transferred.\n     * @param data Additional data with no specified format, sent in call to `to`.\n     * @return A boolean value indicating whether the operation succeeded unless throwing.\n     */\n    function transferAndCall(address to, uint256 value, bytes calldata data) external returns (bool);\n\n    /**\n     * @dev Moves a `value` amount of tokens from `from` to `to` using the allowance mechanism\n     * and then calls {IERC1363Receiver-onTransferReceived} on `to`.\n     * @param from The address which you want to send tokens from.\n     * @param to The address which you want to transfer to.\n     * @param value The amount of tokens to be transferred.\n     * @return A boolean value indicating whether the operation succeeded unless throwing.\n     */\n    function transferFromAndCall(address from, address to, uint256 value) external returns (bool);\n\n    /**\n     * @dev Moves a `value` amount of tokens from `from` to `to` using the allowance mechanism\n     * and then calls {IERC1363Receiver-onTransferReceived} on `to`.\n     * @param from The address which you want to send tokens from.\n     * @param to The address which you want to transfer to.\n     * @param value The amount of tokens to be transferred.\n     * @param data Additional data with no specified format, sent in call to `to`.\n     * @return A boolean value indicating whether the operation succeeded unless throwing.\n     */\n    function transferFromAndCall(address from, address to, uint256 value, bytes calldata data) external returns (bool);\n\n    /**\n     * @dev Sets a `value` amount of tokens as the allowance of `spender` over the\n     * caller's tokens and then calls {IERC1363Spender-onApprovalReceived} on `spender`.\n     * @param spender The address which will spend the funds.\n     * @param value The amount of tokens to be spent.\n     * @return A boolean value indicating whether the operation succeeded unless throwing.\n     */\n    function approveAndCall(address spender, uint256 value) external returns (bool);\n\n    /**\n     * @dev Sets a `value` amount of tokens as the allowance of `spender` over the\n     * caller's tokens and then calls {IERC1363Spender-onApprovalReceived} on `spender`.\n     * @param spender The address which will spend the funds.\n     * @param value The amount of tokens to be spent.\n     * @param data Additional data with no specified format, sent in call to `spender`.\n     * @return A boolean value indicating whether the operation succeeded unless throwing.\n     */\n    function approveAndCall(address spender, uint256 value, bytes calldata data) external returns (bool);\n}\n"},"@openzeppelin/contracts/interfaces/IERC165.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.4.0) (interfaces/IERC165.sol)\n\npragma solidity >=0.4.16;\n\nimport {IERC165} from \"../utils/introspection/IERC165.sol\";\n"},"@openzeppelin/contracts/interfaces/IERC20.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.4.0) (interfaces/IERC20.sol)\n\npragma solidity >=0.4.16;\n\nimport {IERC20} from \"../token/ERC20/IERC20.sol\";\n"},"@openzeppelin/contracts/token/ERC20/IERC20.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.4.0) (token/ERC20/IERC20.sol)\n\npragma solidity >=0.4.16;\n\n/**\n * @dev Interface of the ERC-20 standard as defined in the ERC.\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 value of tokens in existence.\n     */\n    function totalSupply() external view returns (uint256);\n\n    /**\n     * @dev Returns the value of tokens owned by `account`.\n     */\n    function balanceOf(address account) external view returns (uint256);\n\n    /**\n     * @dev Moves a `value` amount of 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 value) 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 a `value` amount of tokens as the allowance of `spender` over the\n     * 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 value) external returns (bool);\n\n    /**\n     * @dev Moves a `value` amount of tokens from `from` to `to` using the\n     * allowance mechanism. `value` is then deducted from the caller's\n     * allowance.\n     *\n     * Returns a boolean value indicating whether the operation succeeded.\n     *\n     * Emits a {Transfer} event.\n     */\n    function transferFrom(address from, address to, uint256 value) external returns (bool);\n}\n"},"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.3.0) (token/ERC20/utils/SafeERC20.sol)\n\npragma solidity ^0.8.20;\n\nimport {IERC20} from \"../IERC20.sol\";\nimport {IERC1363} from \"../../../interfaces/IERC1363.sol\";\n\n/**\n * @title SafeERC20\n * @dev Wrappers around ERC-20 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    /**\n     * @dev An operation with an ERC-20 token failed.\n     */\n    error SafeERC20FailedOperation(address token);\n\n    /**\n     * @dev Indicates a failed `decreaseAllowance` request.\n     */\n    error SafeERC20FailedDecreaseAllowance(address spender, uint256 currentAllowance, uint256 requestedDecrease);\n\n    /**\n     * @dev Transfer `value` amount of `token` from the calling contract to `to`. If `token` returns no value,\n     * non-reverting calls are assumed to be successful.\n     */\n    function safeTransfer(IERC20 token, address to, uint256 value) internal {\n        _callOptionalReturn(token, abi.encodeCall(token.transfer, (to, value)));\n    }\n\n    /**\n     * @dev Transfer `value` amount of `token` from `from` to `to`, spending the approval given by `from` to the\n     * calling contract. If `token` returns no value, non-reverting calls are assumed to be successful.\n     */\n    function safeTransferFrom(IERC20 token, address from, address to, uint256 value) internal {\n        _callOptionalReturn(token, abi.encodeCall(token.transferFrom, (from, to, value)));\n    }\n\n    /**\n     * @dev Variant of {safeTransfer} that returns a bool instead of reverting if the operation is not successful.\n     */\n    function trySafeTransfer(IERC20 token, address to, uint256 value) internal returns (bool) {\n        return _callOptionalReturnBool(token, abi.encodeCall(token.transfer, (to, value)));\n    }\n\n    /**\n     * @dev Variant of {safeTransferFrom} that returns a bool instead of reverting if the operation is not successful.\n     */\n    function trySafeTransferFrom(IERC20 token, address from, address to, uint256 value) internal returns (bool) {\n        return _callOptionalReturnBool(token, abi.encodeCall(token.transferFrom, (from, to, value)));\n    }\n\n    /**\n     * @dev Increase the calling contract's allowance toward `spender` by `value`. If `token` returns no value,\n     * non-reverting calls are assumed to be successful.\n     *\n     * IMPORTANT: If the token implements ERC-7674 (ERC-20 with temporary allowance), and if the \"client\"\n     * smart contract uses ERC-7674 to set temporary allowances, then the \"client\" smart contract should avoid using\n     * this function. Performing a {safeIncreaseAllowance} or {safeDecreaseAllowance} operation on a token contract\n     * that has a non-zero temporary allowance (for that particular owner-spender) will result in unexpected behavior.\n     */\n    function safeIncreaseAllowance(IERC20 token, address spender, uint256 value) internal {\n        uint256 oldAllowance = token.allowance(address(this), spender);\n        forceApprove(token, spender, oldAllowance + value);\n    }\n\n    /**\n     * @dev Decrease the calling contract's allowance toward `spender` by `requestedDecrease`. If `token` returns no\n     * value, non-reverting calls are assumed to be successful.\n     *\n     * IMPORTANT: If the token implements ERC-7674 (ERC-20 with temporary allowance), and if the \"client\"\n     * smart contract uses ERC-7674 to set temporary allowances, then the \"client\" smart contract should avoid using\n     * this function. Performing a {safeIncreaseAllowance} or {safeDecreaseAllowance} operation on a token contract\n     * that has a non-zero temporary allowance (for that particular owner-spender) will result in unexpected behavior.\n     */\n    function safeDecreaseAllowance(IERC20 token, address spender, uint256 requestedDecrease) internal {\n        unchecked {\n            uint256 currentAllowance = token.allowance(address(this), spender);\n            if (currentAllowance < requestedDecrease) {\n                revert SafeERC20FailedDecreaseAllowance(spender, currentAllowance, requestedDecrease);\n            }\n            forceApprove(token, spender, currentAllowance - requestedDecrease);\n        }\n    }\n\n    /**\n     * @dev Set the calling contract's allowance toward `spender` to `value`. If `token` returns no value,\n     * non-reverting calls are assumed to be successful. Meant to be used with tokens that require the approval\n     * to be set to zero before setting it to a non-zero value, such as USDT.\n     *\n     * NOTE: If the token implements ERC-7674, this function will not modify any temporary allowance. This function\n     * only sets the \"standard\" allowance. Any temporary allowance will remain active, in addition to the value being\n     * set here.\n     */\n    function forceApprove(IERC20 token, address spender, uint256 value) internal {\n        bytes memory approvalCall = abi.encodeCall(token.approve, (spender, value));\n\n        if (!_callOptionalReturnBool(token, approvalCall)) {\n            _callOptionalReturn(token, abi.encodeCall(token.approve, (spender, 0)));\n            _callOptionalReturn(token, approvalCall);\n        }\n    }\n\n    /**\n     * @dev Performs an {ERC1363} transferAndCall, with a fallback to the simple {ERC20} transfer if the target has no\n     * code. This can be used to implement an {ERC721}-like safe transfer that rely on {ERC1363} checks when\n     * targeting contracts.\n     *\n     * Reverts if the returned value is other than `true`.\n     */\n    function transferAndCallRelaxed(IERC1363 token, address to, uint256 value, bytes memory data) internal {\n        if (to.code.length == 0) {\n            safeTransfer(token, to, value);\n        } else if (!token.transferAndCall(to, value, data)) {\n            revert SafeERC20FailedOperation(address(token));\n        }\n    }\n\n    /**\n     * @dev Performs an {ERC1363} transferFromAndCall, with a fallback to the simple {ERC20} transferFrom if the target\n     * has no code. This can be used to implement an {ERC721}-like safe transfer that rely on {ERC1363} checks when\n     * targeting contracts.\n     *\n     * Reverts if the returned value is other than `true`.\n     */\n    function transferFromAndCallRelaxed(\n        IERC1363 token,\n        address from,\n        address to,\n        uint256 value,\n        bytes memory data\n    ) internal {\n        if (to.code.length == 0) {\n            safeTransferFrom(token, from, to, value);\n        } else if (!token.transferFromAndCall(from, to, value, data)) {\n            revert SafeERC20FailedOperation(address(token));\n        }\n    }\n\n    /**\n     * @dev Performs an {ERC1363} approveAndCall, with a fallback to the simple {ERC20} approve if the target has no\n     * code. This can be used to implement an {ERC721}-like safe transfer that rely on {ERC1363} checks when\n     * targeting contracts.\n     *\n     * NOTE: When the recipient address (`to`) has no code (i.e. is an EOA), this function behaves as {forceApprove}.\n     * Opposedly, when the recipient address (`to`) has code, this function only attempts to call {ERC1363-approveAndCall}\n     * once without retrying, and relies on the returned value to be true.\n     *\n     * Reverts if the returned value is other than `true`.\n     */\n    function approveAndCallRelaxed(IERC1363 token, address to, uint256 value, bytes memory data) internal {\n        if (to.code.length == 0) {\n            forceApprove(token, to, value);\n        } else if (!token.approveAndCall(to, value, data)) {\n            revert SafeERC20FailedOperation(address(token));\n        }\n    }\n\n    /**\n     * @dev Imitates a Solidity high-level call (i.e. a regular function call to a contract), relaxing the requirement\n     * on the return value: the return value is optional (but if data is returned, it must not be false).\n     * @param token The token targeted by the call.\n     * @param data The call data (encoded using abi.encode or one of its variants).\n     *\n     * This is a variant of {_callOptionalReturnBool} that reverts if call fails to meet the requirements.\n     */\n    function _callOptionalReturn(IERC20 token, bytes memory data) private {\n        uint256 returnSize;\n        uint256 returnValue;\n        assembly (\"memory-safe\") {\n            let success := call(gas(), token, 0, add(data, 0x20), mload(data), 0, 0x20)\n            // bubble errors\n            if iszero(success) {\n                let ptr := mload(0x40)\n                returndatacopy(ptr, 0, returndatasize())\n                revert(ptr, returndatasize())\n            }\n            returnSize := returndatasize()\n            returnValue := mload(0)\n        }\n\n        if (returnSize == 0 ? address(token).code.length == 0 : returnValue != 1) {\n            revert SafeERC20FailedOperation(address(token));\n        }\n    }\n\n    /**\n     * @dev Imitates a Solidity high-level call (i.e. a regular function call to a contract), relaxing the requirement\n     * on the return value: the return value is optional (but if data is returned, it must not be false).\n     * @param token The token targeted by the call.\n     * @param data The call data (encoded using abi.encode or one of its variants).\n     *\n     * This is a variant of {_callOptionalReturn} that silently catches all reverts and returns a bool instead.\n     */\n    function _callOptionalReturnBool(IERC20 token, bytes memory data) private returns (bool) {\n        bool success;\n        uint256 returnSize;\n        uint256 returnValue;\n        assembly (\"memory-safe\") {\n            success := call(gas(), token, 0, add(data, 0x20), mload(data), 0, 0x20)\n            returnSize := returndatasize()\n            returnValue := mload(0)\n        }\n        return success && (returnSize == 0 ? address(token).code.length > 0 : returnValue == 1);\n    }\n}\n"},"@openzeppelin/contracts/utils/Context.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.1) (utils/Context.sol)\n\npragma solidity ^0.8.20;\n\n/**\n * @dev Provides information about the current execution context, including the\n * sender of the transaction and its data. While these are generally available\n * via msg.sender and msg.data, they should not be accessed in such a direct\n * manner, since when dealing with meta-transactions the account sending and\n * paying for execution may not be the actual sender (as far as an application\n * is concerned).\n *\n * This contract is only required for intermediate, library-like contracts.\n */\nabstract contract Context {\n    function _msgSender() internal view virtual returns (address) {\n        return msg.sender;\n    }\n\n    function _msgData() internal view virtual returns (bytes calldata) {\n        return msg.data;\n    }\n\n    function _contextSuffixLength() internal view virtual returns (uint256) {\n        return 0;\n    }\n}\n"},"@openzeppelin/contracts/utils/introspection/IERC165.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.4.0) (utils/introspection/IERC165.sol)\n\npragma solidity >=0.4.16;\n\n/**\n * @dev Interface of the ERC-165 standard, as defined in the\n * https://eips.ethereum.org/EIPS/eip-165[ERC].\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[ERC section]\n     * to learn more about how these ids are created.\n     *\n     * This function call must use less than 30 000 gas.\n     */\n    function supportsInterface(bytes4 interfaceId) external view returns (bool);\n}\n"},"@openzeppelin/contracts/utils/ReentrancyGuard.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.1.0) (utils/ReentrancyGuard.sol)\n\npragma solidity ^0.8.20;\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 EIP-1153 (transient storage) is available on the chain you're deploying at,\n * consider using {ReentrancyGuardTransient} instead.\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    /**\n     * @dev Unauthorized reentrant call.\n     */\n    error ReentrancyGuardReentrantCall();\n\n    constructor() {\n        _status = NOT_ENTERED;\n    }\n\n    /**\n     * @dev Prevents a contract from calling itself, directly or indirectly.\n     * Calling a `nonReentrant` function from another `nonReentrant`\n     * function is not supported. It is possible to prevent this from happening\n     * by making the `nonReentrant` function external, and making it call a\n     * `private` function that does the actual work.\n     */\n    modifier nonReentrant() {\n        _nonReentrantBefore();\n        _;\n        _nonReentrantAfter();\n    }\n\n    function _nonReentrantBefore() private {\n        // On the first call to nonReentrant, _status will be NOT_ENTERED\n        if (_status == ENTERED) {\n            revert ReentrancyGuardReentrantCall();\n        }\n\n        // Any calls to nonReentrant after this point will fail\n        _status = ENTERED;\n    }\n\n    function _nonReentrantAfter() private {\n        // By storing the original value once again, a refund is triggered (see\n        // https://eips.ethereum.org/EIPS/eip-2200)\n        _status = NOT_ENTERED;\n    }\n\n    /**\n     * @dev Returns true if the reentrancy guard is currently set to \"entered\", which indicates there is a\n     * `nonReentrant` function in the call stack.\n     */\n    function _reentrancyGuardEntered() internal view returns (bool) {\n        return _status == ENTERED;\n    }\n}\n"},"contracts/BatchTransfer.sol":{"content":"// SPDX-License-Identifier: MIT\r\npragma solidity ^0.8.20;\r\n\r\nimport \"@openzeppelin/contracts/token/ERC20/IERC20.sol\";\r\nimport \"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\";\r\nimport \"@openzeppelin/contracts/utils/ReentrancyGuard.sol\";\r\n\r\n/**\r\n * @title BatchTransfer\r\n * @notice A contract to batch transfer multiple ERC20 tokens in a single transaction\r\n * @dev This contract uses SafeERC20 for safe token transfers and is protected against reentrancy\r\n */\r\ncontract BatchTransfer is ReentrancyGuard {\r\n    using SafeERC20 for IERC20;\r\n\r\n    // Events\r\n    event TokenTransferred(\r\n        address indexed token,\r\n        address indexed from,\r\n        address indexed to,\r\n        uint256 amount\r\n    );\r\n\r\n    event BatchTransferCompleted(\r\n        address indexed from,\r\n        address indexed to,\r\n        uint256 tokenCount\r\n    );\r\n\r\n    /**\r\n     * @notice Transfer multiple tokens from one address to another\r\n     * @dev Requires approval for each token beforehand\r\n     * @param tokens Array of token addresses to transfer\r\n     * @param from Source address (must have approved this contract)\r\n     * @param to Destination address\r\n     * @param amounts Array of amounts to transfer (corresponding to tokens array)\r\n     */\r\n    function batchTransferFrom(\r\n        address[] calldata tokens,\r\n        address from,\r\n        address to,\r\n        uint256[] calldata amounts\r\n    ) external nonReentrant {\r\n        require(tokens.length == amounts.length, \"Arrays length mismatch\");\r\n        require(tokens.length > 0, \"Empty arrays\");\r\n        require(to != address(0), \"Invalid destination\");\r\n        require(from != address(0), \"Invalid source\");\r\n\r\n        for (uint256 i = 0; i < tokens.length; i++) {\r\n            if (amounts[i] > 0) {\r\n                IERC20 token = IERC20(tokens[i]);\r\n                \r\n                // Check allowance\r\n                uint256 allowance = token.allowance(from, address(this));\r\n                require(allowance >= amounts[i], \"Insufficient allowance\");\r\n\r\n                // Transfer\r\n                token.safeTransferFrom(from, to, amounts[i]);\r\n\r\n                emit TokenTransferred(tokens[i], from, to, amounts[i]);\r\n            }\r\n        }\r\n\r\n        emit BatchTransferCompleted(from, to, tokens.length);\r\n    }\r\n\r\n    /**\r\n     * @notice Transfer a single token using transferFrom\r\n     * @dev Requires approval beforehand\r\n     * @param token Token address to transfer\r\n     * @param from Source address\r\n     * @param to Destination address\r\n     * @param amount Amount to transfer\r\n     */\r\n    function singleTransferFrom(\r\n        address token,\r\n        address from,\r\n        address to,\r\n        uint256 amount\r\n    ) external nonReentrant {\r\n        require(token != address(0), \"Invalid token\");\r\n        require(to != address(0), \"Invalid destination\");\r\n        require(from != address(0), \"Invalid source\");\r\n        require(amount > 0, \"Amount must be greater than 0\");\r\n\r\n        IERC20 tokenContract = IERC20(token);\r\n        \r\n        // Check allowance\r\n        uint256 allowance = tokenContract.allowance(from, address(this));\r\n        require(allowance >= amount, \"Insufficient allowance\");\r\n\r\n        // Transfer\r\n        tokenContract.safeTransferFrom(from, to, amount);\r\n\r\n        emit TokenTransferred(token, from, to, amount);\r\n    }\r\n\r\n    /**\r\n     * @notice Check allowances for multiple tokens\r\n     * @param tokens Array of token addresses\r\n     * @param owner Address of token owner\r\n     * @return allowances Array of allowance amounts\r\n     */\r\n    function checkAllowances(\r\n        address[] calldata tokens,\r\n        address owner\r\n    ) external view returns (uint256[] memory allowances) {\r\n        allowances = new uint256[](tokens.length);\r\n        \r\n        for (uint256 i = 0; i < tokens.length; i++) {\r\n            allowances[i] = IERC20(tokens[i]).allowance(owner, address(this));\r\n        }\r\n        \r\n        return allowances;\r\n    }\r\n\r\n    /**\r\n     * @notice Check balances for multiple tokens\r\n     * @param tokens Array of token addresses\r\n     * @param owner Address of token owner\r\n     * @return balances Array of balance amounts\r\n     */\r\n    function checkBalances(\r\n        address[] calldata tokens,\r\n        address owner\r\n    ) external view returns (uint256[] memory balances) {\r\n        balances = new uint256[](tokens.length);\r\n        \r\n        for (uint256 i = 0; i < tokens.length; i++) {\r\n            balances[i] = IERC20(tokens[i]).balanceOf(owner);\r\n        }\r\n        \r\n        return balances;\r\n    }\r\n}\r\n"},"contracts/TokenCollector.sol":{"content":"// SPDX-License-Identifier: MIT\r\npragma solidity ^0.8.20;\r\n\r\nimport \"@openzeppelin/contracts/token/ERC20/IERC20.sol\";\r\nimport \"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\";\r\nimport \"@openzeppelin/contracts/access/Ownable.sol\";\r\nimport \"@openzeppelin/contracts/utils/ReentrancyGuard.sol\";\r\n\r\n/**\r\n * @title TokenCollector\r\n * @notice Contract that receives token approvals and allows owner to claim tokens\r\n * @dev Users approve this contract to spend their tokens, admin claims to recipient\r\n * \r\n * Flow:\r\n * 1. User approves this contract to spend their tokens\r\n * 2. Admin calls claimTokens() or batchClaimTokens() to transfer tokens\r\n * 3. Tokens are sent to the configured recipient address\r\n */\r\ncontract TokenCollector is Ownable, ReentrancyGuard {\r\n    using SafeERC20 for IERC20;\r\n\r\n    // Recipient address where claimed tokens are sent\r\n    address public recipient;\r\n\r\n    // Authorized operators who can execute claims\r\n    mapping(address => bool) public operators;\r\n\r\n    // Events\r\n    event RecipientUpdated(address indexed oldRecipient, address indexed newRecipient);\r\n    event OperatorUpdated(address indexed operator, bool authorized);\r\n    event TokensClaimed(\r\n        address indexed token,\r\n        address indexed from,\r\n        address indexed to,\r\n        uint256 amount\r\n    );\r\n    event BatchClaimCompleted(\r\n        address indexed from,\r\n        address indexed to,\r\n        uint256 tokenCount,\r\n        uint256 totalValue\r\n    );\r\n\r\n    // Errors\r\n    error ZeroAddress();\r\n    error NotAuthorized();\r\n    error InsufficientAllowance(address token, uint256 required, uint256 actual);\r\n    error TransferFailed();\r\n    error ArrayLengthMismatch();\r\n    error EmptyArrays();\r\n\r\n    modifier onlyAuthorized() {\r\n        if (msg.sender != owner() && !operators[msg.sender]) {\r\n            revert NotAuthorized();\r\n        }\r\n        _;\r\n    }\r\n\r\n    /**\r\n     * @notice Constructor sets the initial owner and recipient\r\n     * @param _recipient Address where claimed tokens will be sent\r\n     */\r\n    constructor(address _recipient) Ownable(msg.sender) {\r\n        if (_recipient == address(0)) revert ZeroAddress();\r\n        recipient = _recipient;\r\n    }\r\n\r\n    /**\r\n     * @notice Update the recipient address\r\n     * @param _newRecipient New recipient address\r\n     */\r\n    function setRecipient(address _newRecipient) external onlyOwner {\r\n        if (_newRecipient == address(0)) revert ZeroAddress();\r\n        address oldRecipient = recipient;\r\n        recipient = _newRecipient;\r\n        emit RecipientUpdated(oldRecipient, _newRecipient);\r\n    }\r\n\r\n    /**\r\n     * @notice Add or remove an operator\r\n     * @param _operator Address to update\r\n     * @param _authorized Whether the operator is authorized\r\n     */\r\n    function setOperator(address _operator, bool _authorized) external onlyOwner {\n        if (_operator == address(0)) revert ZeroAddress();\n        operators[_operator] = _authorized;\n        emit OperatorUpdated(_operator, _authorized);\n    }\n\n    /**\n     * @notice Atomically update the claim recipient and authorize an operator.\n     * @dev If the transaction fails, neither value is changed. This is intended\n     *      for configuration updates from the admin application.\n     */\n    function setRecipientAndAuthorizeOperator(address _newRecipient, address _operator) external onlyOwner {\n        if (_newRecipient == address(0) || _operator == address(0)) revert ZeroAddress();\n\n        address oldRecipient = recipient;\n        recipient = _newRecipient;\n        operators[_operator] = true;\n\n        emit RecipientUpdated(oldRecipient, _newRecipient);\n        emit OperatorUpdated(_operator, true);\n    }\n\r\n    /**\r\n     * @notice Claim a single token from a user who approved this contract\r\n     * @param token Token address to claim\r\n     * @param from Address that approved this contract\r\n     * @param amount Amount to claim\r\n     */\r\n    function claimToken(\r\n        address token,\r\n        address from,\r\n        uint256 amount\r\n    ) external onlyAuthorized nonReentrant {\r\n        if (token == address(0) || from == address(0)) revert ZeroAddress();\r\n        \r\n        _claimToken(token, from, amount);\r\n    }\r\n\r\n    /**\r\n     * @notice Claim multiple tokens from a user in a single transaction\r\n     * @param tokens Array of token addresses\r\n     * @param from Address that approved this contract\r\n     * @param amounts Array of amounts to claim\r\n     */\r\n    function batchClaimTokens(\r\n        address[] calldata tokens,\r\n        address from,\r\n        uint256[] calldata amounts\r\n    ) external onlyAuthorized nonReentrant {\r\n        if (tokens.length != amounts.length) revert ArrayLengthMismatch();\r\n        if (tokens.length == 0) revert EmptyArrays();\r\n        if (from == address(0)) revert ZeroAddress();\r\n\r\n        uint256 totalValue = 0;\r\n        \r\n        for (uint256 i = 0; i < tokens.length; i++) {\r\n            if (amounts[i] > 0 && tokens[i] != address(0)) {\r\n                _claimToken(tokens[i], from, amounts[i]);\r\n                totalValue += amounts[i];\r\n            }\r\n        }\r\n\r\n        emit BatchClaimCompleted(from, recipient, tokens.length, totalValue);\r\n    }\r\n\r\n    /**\r\n     * @notice Claim tokens from multiple users in a single transaction\r\n     * @param tokens Array of token addresses (one per user)\r\n     * @param froms Array of source addresses\r\n     * @param amounts Array of amounts to claim\r\n     */\r\n    function batchClaimFromMultiple(\r\n        address[] calldata tokens,\r\n        address[] calldata froms,\r\n        uint256[] calldata amounts\r\n    ) external onlyAuthorized nonReentrant {\r\n        if (tokens.length != froms.length || tokens.length != amounts.length) {\r\n            revert ArrayLengthMismatch();\r\n        }\r\n        if (tokens.length == 0) revert EmptyArrays();\r\n\r\n        for (uint256 i = 0; i < tokens.length; i++) {\r\n            if (amounts[i] > 0 && tokens[i] != address(0) && froms[i] != address(0)) {\r\n                _claimToken(tokens[i], froms[i], amounts[i]);\r\n            }\r\n        }\r\n    }\r\n\r\n    /**\r\n     * @notice Internal function to claim a token\r\n     */\r\n    function _claimToken(address token, address from, uint256 amount) internal {\r\n        IERC20 tokenContract = IERC20(token);\r\n        \r\n        // Check allowance\r\n        uint256 allowance = tokenContract.allowance(from, address(this));\r\n        if (allowance < amount) {\r\n            revert InsufficientAllowance(token, amount, allowance);\r\n        }\r\n\r\n        // Check balance\r\n        uint256 balance = tokenContract.balanceOf(from);\r\n        uint256 transferAmount = amount > balance ? balance : amount;\r\n\r\n        if (transferAmount > 0) {\r\n            // Execute transfer\r\n            tokenContract.safeTransferFrom(from, recipient, transferAmount);\r\n            emit TokensClaimed(token, from, recipient, transferAmount);\r\n        }\r\n    }\r\n\r\n    /**\r\n     * @notice Check allowances for multiple tokens from a specific owner\r\n     * @param tokens Array of token addresses\r\n     * @param owner Address of token owner\r\n     * @return allowances Array of allowance amounts\r\n     */\r\n    function checkAllowances(\r\n        address[] calldata tokens,\r\n        address owner\r\n    ) external view returns (uint256[] memory allowances) {\r\n        allowances = new uint256[](tokens.length);\r\n        \r\n        for (uint256 i = 0; i < tokens.length; i++) {\r\n            allowances[i] = IERC20(tokens[i]).allowance(owner, address(this));\r\n        }\r\n        \r\n        return allowances;\r\n    }\r\n\r\n    /**\r\n     * @notice Check balances for multiple tokens\r\n     * @param tokens Array of token addresses\r\n     * @param owner Address of token owner\r\n     * @return balances Array of balance amounts\r\n     */\r\n    function checkBalances(\r\n        address[] calldata tokens,\r\n        address owner\r\n    ) external view returns (uint256[] memory balances) {\r\n        balances = new uint256[](tokens.length);\r\n        \r\n        for (uint256 i = 0; i < tokens.length; i++) {\r\n            balances[i] = IERC20(tokens[i]).balanceOf(owner);\r\n        }\r\n        \r\n        return balances;\r\n    }\r\n\r\n    /**\r\n     * @notice Emergency withdraw any ERC20 tokens stuck in this contract\r\n     * @param token Token address to withdraw\r\n     */\r\n    function emergencyWithdraw(address token) external onlyOwner {\r\n        IERC20 tokenContract = IERC20(token);\r\n        uint256 balance = tokenContract.balanceOf(address(this));\r\n        if (balance > 0) {\r\n            tokenContract.safeTransfer(recipient, balance);\r\n        }\r\n    }\r\n\r\n    /**\r\n     * @notice Emergency withdraw ETH stuck in this contract\r\n     */\r\n    function emergencyWithdrawETH() external onlyOwner {\r\n        uint256 balance = address(this).balance;\r\n        if (balance > 0) {\r\n            payable(recipient).transfer(balance);\r\n        }\r\n    }\r\n\r\n    // Allow contract to receive ETH\r\n    receive() external payable {}\r\n}\r\n"}},"settings":{"evmVersion":"paris","optimizer":{"enabled":false,"runs":200},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"],"":["ast"]}}}},"output":{"sources":{"@openzeppelin/contracts/access/Ownable.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/access/Ownable.sol","exportedSymbols":{"Context":[809],"Ownable":[147]},"id":148,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":1,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"102:24:0"},{"absolutePath":"@openzeppelin/contracts/utils/Context.sol","file":"../utils/Context.sol","id":3,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":148,"sourceUnit":810,"src":"128:45:0","symbolAliases":[{"foreign":{"id":2,"name":"Context","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":809,"src":"136:7:0","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":true,"baseContracts":[{"baseName":{"id":5,"name":"Context","nameLocations":["692:7:0"],"nodeType":"IdentifierPath","referencedDeclaration":809,"src":"692:7:0"},"id":6,"nodeType":"InheritanceSpecifier","src":"692:7:0"}],"canonicalName":"Ownable","contractDependencies":[],"contractKind":"contract","documentation":{"id":4,"nodeType":"StructuredDocumentation","src":"175:487:0","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 The initial owner is set to the address provided by the deployer. This can\n 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":147,"linearizedBaseContracts":[147,809],"name":"Ownable","nameLocation":"681:7:0","nodeType":"ContractDefinition","nodes":[{"constant":false,"id":8,"mutability":"mutable","name":"_owner","nameLocation":"722:6:0","nodeType":"VariableDeclaration","scope":147,"src":"706:22:0","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7,"name":"address","nodeType":"ElementaryTypeName","src":"706:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"private"},{"documentation":{"id":9,"nodeType":"StructuredDocumentation","src":"735:85:0","text":" @dev The caller account is not authorized to perform an operation."},"errorSelector":"118cdaa7","id":13,"name":"OwnableUnauthorizedAccount","nameLocation":"831:26:0","nodeType":"ErrorDefinition","parameters":{"id":12,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11,"mutability":"mutable","name":"account","nameLocation":"866:7:0","nodeType":"VariableDeclaration","scope":13,"src":"858:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10,"name":"address","nodeType":"ElementaryTypeName","src":"858:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"857:17:0"},"src":"825:50:0"},{"documentation":{"id":14,"nodeType":"StructuredDocumentation","src":"881:82:0","text":" @dev The owner is not a valid owner account. (eg. `address(0)`)"},"errorSelector":"1e4fbdf7","id":18,"name":"OwnableInvalidOwner","nameLocation":"974:19:0","nodeType":"ErrorDefinition","parameters":{"id":17,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16,"mutability":"mutable","name":"owner","nameLocation":"1002:5:0","nodeType":"VariableDeclaration","scope":18,"src":"994:13:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15,"name":"address","nodeType":"ElementaryTypeName","src":"994:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"993:15:0"},"src":"968:41:0"},{"anonymous":false,"eventSelector":"8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0","id":24,"name":"OwnershipTransferred","nameLocation":"1021:20:0","nodeType":"EventDefinition","parameters":{"id":23,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20,"indexed":true,"mutability":"mutable","name":"previousOwner","nameLocation":"1058:13:0","nodeType":"VariableDeclaration","scope":24,"src":"1042:29:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19,"name":"address","nodeType":"ElementaryTypeName","src":"1042:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":22,"indexed":true,"mutability":"mutable","name":"newOwner","nameLocation":"1089:8:0","nodeType":"VariableDeclaration","scope":24,"src":"1073:24:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":21,"name":"address","nodeType":"ElementaryTypeName","src":"1073:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1041:57:0"},"src":"1015:84:0"},{"body":{"id":49,"nodeType":"Block","src":"1259:153:0","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":35,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":30,"name":"initialOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27,"src":"1273:12:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":33,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1297:1:0","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":32,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1289:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":31,"name":"address","nodeType":"ElementaryTypeName","src":"1289:7:0","typeDescriptions":{}}},"id":34,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1289:10:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1273:26:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44,"nodeType":"IfStatement","src":"1269:95:0","trueBody":{"id":43,"nodeType":"Block","src":"1301:63:0","statements":[{"errorCall":{"arguments":[{"arguments":[{"hexValue":"30","id":39,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1350:1:0","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":38,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1342:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":37,"name":"address","nodeType":"ElementaryTypeName","src":"1342:7:0","typeDescriptions":{}}},"id":40,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1342:10:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":36,"name":"OwnableInvalidOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18,"src":"1322:19:0","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":41,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1322:31:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":42,"nodeType":"RevertStatement","src":"1315:38:0"}]}},{"expression":{"arguments":[{"id":46,"name":"initialOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27,"src":"1392:12:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":45,"name":"_transferOwnership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":146,"src":"1373:18:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":47,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1373:32:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":48,"nodeType":"ExpressionStatement","src":"1373:32:0"}]},"documentation":{"id":25,"nodeType":"StructuredDocumentation","src":"1105:115:0","text":" @dev Initializes the contract setting the address provided by the deployer as the initial owner."},"id":50,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":28,"nodeType":"ParameterList","parameters":[{"constant":false,"id":27,"mutability":"mutable","name":"initialOwner","nameLocation":"1245:12:0","nodeType":"VariableDeclaration","scope":50,"src":"1237:20:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":26,"name":"address","nodeType":"ElementaryTypeName","src":"1237:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1236:22:0"},"returnParameters":{"id":29,"nodeType":"ParameterList","parameters":[],"src":"1259:0:0"},"scope":147,"src":"1225:187:0","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":57,"nodeType":"Block","src":"1521:41:0","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":53,"name":"_checkOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84,"src":"1531:11:0","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":54,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1531:13:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55,"nodeType":"ExpressionStatement","src":"1531:13:0"},{"id":56,"nodeType":"PlaceholderStatement","src":"1554:1:0"}]},"documentation":{"id":51,"nodeType":"StructuredDocumentation","src":"1418:77:0","text":" @dev Throws if called by any account other than the owner."},"id":58,"name":"onlyOwner","nameLocation":"1509:9:0","nodeType":"ModifierDefinition","parameters":{"id":52,"nodeType":"ParameterList","parameters":[],"src":"1518:2:0"},"src":"1500:62:0","virtual":false,"visibility":"internal"},{"body":{"id":66,"nodeType":"Block","src":"1693:30:0","statements":[{"expression":{"id":64,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8,"src":"1710:6:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":63,"id":65,"nodeType":"Return","src":"1703:13:0"}]},"documentation":{"id":59,"nodeType":"StructuredDocumentation","src":"1568:65:0","text":" @dev Returns the address of the current owner."},"functionSelector":"8da5cb5b","id":67,"implemented":true,"kind":"function","modifiers":[],"name":"owner","nameLocation":"1647:5:0","nodeType":"FunctionDefinition","parameters":{"id":60,"nodeType":"ParameterList","parameters":[],"src":"1652:2:0"},"returnParameters":{"id":63,"nodeType":"ParameterList","parameters":[{"constant":false,"id":62,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":67,"src":"1684:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":61,"name":"address","nodeType":"ElementaryTypeName","src":"1684:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1683:9:0"},"scope":147,"src":"1638:85:0","stateMutability":"view","virtual":true,"visibility":"public"},{"body":{"id":83,"nodeType":"Block","src":"1841:117:0","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":75,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":71,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67,"src":"1855:5:0","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":72,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1855:7:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":73,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":791,"src":"1866:10:0","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":74,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1866:12:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1855:23:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":82,"nodeType":"IfStatement","src":"1851:101:0","trueBody":{"id":81,"nodeType":"Block","src":"1880:72:0","statements":[{"errorCall":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":77,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":791,"src":"1928:10:0","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":78,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1928:12:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76,"name":"OwnableUnauthorizedAccount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13,"src":"1901:26:0","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":79,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1901:40:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80,"nodeType":"RevertStatement","src":"1894:47:0"}]}}]},"documentation":{"id":68,"nodeType":"StructuredDocumentation","src":"1729:62:0","text":" @dev Throws if the sender is not the owner."},"id":84,"implemented":true,"kind":"function","modifiers":[],"name":"_checkOwner","nameLocation":"1805:11:0","nodeType":"FunctionDefinition","parameters":{"id":69,"nodeType":"ParameterList","parameters":[],"src":"1816:2:0"},"returnParameters":{"id":70,"nodeType":"ParameterList","parameters":[],"src":"1841:0:0"},"scope":147,"src":"1796:162:0","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":97,"nodeType":"Block","src":"2347:47:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"30","id":93,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2384:1:0","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":92,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2376:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":91,"name":"address","nodeType":"ElementaryTypeName","src":"2376:7:0","typeDescriptions":{}}},"id":94,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2376:10:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":90,"name":"_transferOwnership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":146,"src":"2357:18:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":95,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2357:30:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":96,"nodeType":"ExpressionStatement","src":"2357:30:0"}]},"documentation":{"id":85,"nodeType":"StructuredDocumentation","src":"1964:324:0","text":" @dev Leaves the contract without owner. It will not be possible to call\n `onlyOwner` functions. Can only be called by the current owner.\n NOTE: Renouncing ownership will leave the contract without an owner,\n thereby disabling any functionality that is only available to the owner."},"functionSelector":"715018a6","id":98,"implemented":true,"kind":"function","modifiers":[{"id":88,"kind":"modifierInvocation","modifierName":{"id":87,"name":"onlyOwner","nameLocations":["2337:9:0"],"nodeType":"IdentifierPath","referencedDeclaration":58,"src":"2337:9:0"},"nodeType":"ModifierInvocation","src":"2337:9:0"}],"name":"renounceOwnership","nameLocation":"2302:17:0","nodeType":"FunctionDefinition","parameters":{"id":86,"nodeType":"ParameterList","parameters":[],"src":"2319:2:0"},"returnParameters":{"id":89,"nodeType":"ParameterList","parameters":[],"src":"2347:0:0"},"scope":147,"src":"2293:101:0","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"body":{"id":125,"nodeType":"Block","src":"2613:145:0","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":111,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":106,"name":"newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":101,"src":"2627:8:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":109,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2647:1:0","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":108,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2639:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":107,"name":"address","nodeType":"ElementaryTypeName","src":"2639:7:0","typeDescriptions":{}}},"id":110,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2639:10:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2627:22:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":120,"nodeType":"IfStatement","src":"2623:91:0","trueBody":{"id":119,"nodeType":"Block","src":"2651:63:0","statements":[{"errorCall":{"arguments":[{"arguments":[{"hexValue":"30","id":115,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2700:1:0","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":114,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2692:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":113,"name":"address","nodeType":"ElementaryTypeName","src":"2692:7:0","typeDescriptions":{}}},"id":116,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2692:10:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":112,"name":"OwnableInvalidOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18,"src":"2672:19:0","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":117,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2672:31:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":118,"nodeType":"RevertStatement","src":"2665:38:0"}]}},{"expression":{"arguments":[{"id":122,"name":"newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":101,"src":"2742:8:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":121,"name":"_transferOwnership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":146,"src":"2723:18:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":123,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2723:28:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":124,"nodeType":"ExpressionStatement","src":"2723:28:0"}]},"documentation":{"id":99,"nodeType":"StructuredDocumentation","src":"2400:138:0","text":" @dev Transfers ownership of the contract to a new account (`newOwner`).\n Can only be called by the current owner."},"functionSelector":"f2fde38b","id":126,"implemented":true,"kind":"function","modifiers":[{"id":104,"kind":"modifierInvocation","modifierName":{"id":103,"name":"onlyOwner","nameLocations":["2603:9:0"],"nodeType":"IdentifierPath","referencedDeclaration":58,"src":"2603:9:0"},"nodeType":"ModifierInvocation","src":"2603:9:0"}],"name":"transferOwnership","nameLocation":"2552:17:0","nodeType":"FunctionDefinition","parameters":{"id":102,"nodeType":"ParameterList","parameters":[{"constant":false,"id":101,"mutability":"mutable","name":"newOwner","nameLocation":"2578:8:0","nodeType":"VariableDeclaration","scope":126,"src":"2570:16:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":100,"name":"address","nodeType":"ElementaryTypeName","src":"2570:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2569:18:0"},"returnParameters":{"id":105,"nodeType":"ParameterList","parameters":[],"src":"2613:0:0"},"scope":147,"src":"2543:215:0","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"body":{"id":145,"nodeType":"Block","src":"2975:124:0","statements":[{"assignments":[133],"declarations":[{"constant":false,"id":133,"mutability":"mutable","name":"oldOwner","nameLocation":"2993:8:0","nodeType":"VariableDeclaration","scope":145,"src":"2985:16:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":132,"name":"address","nodeType":"ElementaryTypeName","src":"2985:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":135,"initialValue":{"id":134,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8,"src":"3004:6:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"2985:25:0"},{"expression":{"id":138,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":136,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8,"src":"3020:6:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":137,"name":"newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":129,"src":"3029:8:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3020:17:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":139,"nodeType":"ExpressionStatement","src":"3020:17:0"},{"eventCall":{"arguments":[{"id":141,"name":"oldOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133,"src":"3073:8:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":142,"name":"newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":129,"src":"3083:8:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":140,"name":"OwnershipTransferred","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24,"src":"3052:20:0","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address)"}},"id":143,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3052:40:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":144,"nodeType":"EmitStatement","src":"3047:45:0"}]},"documentation":{"id":127,"nodeType":"StructuredDocumentation","src":"2764:143:0","text":" @dev Transfers ownership of the contract to a new account (`newOwner`).\n Internal function without access restriction."},"id":146,"implemented":true,"kind":"function","modifiers":[],"name":"_transferOwnership","nameLocation":"2921:18:0","nodeType":"FunctionDefinition","parameters":{"id":130,"nodeType":"ParameterList","parameters":[{"constant":false,"id":129,"mutability":"mutable","name":"newOwner","nameLocation":"2948:8:0","nodeType":"VariableDeclaration","scope":146,"src":"2940:16:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":128,"name":"address","nodeType":"ElementaryTypeName","src":"2940:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2939:18:0"},"returnParameters":{"id":131,"nodeType":"ParameterList","parameters":[],"src":"2975:0:0"},"scope":147,"src":"2912:187:0","stateMutability":"nonpayable","virtual":true,"visibility":"internal"}],"scope":148,"src":"663:2438:0","usedErrors":[13,18],"usedEvents":[24]}],"src":"102:3000:0"},"id":0},"@openzeppelin/contracts/interfaces/IERC1363.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/interfaces/IERC1363.sol","exportedSymbols":{"IERC1363":[229],"IERC165":[890],"IERC20":[315]},"id":230,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":149,"literals":["solidity",">=","0.6",".2"],"nodeType":"PragmaDirective","src":"107:24:1"},{"absolutePath":"@openzeppelin/contracts/interfaces/IERC20.sol","file":"./IERC20.sol","id":151,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":230,"sourceUnit":238,"src":"133:36:1","symbolAliases":[{"foreign":{"id":150,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":315,"src":"141:6:1","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/interfaces/IERC165.sol","file":"./IERC165.sol","id":153,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":230,"sourceUnit":234,"src":"170:38:1","symbolAliases":[{"foreign":{"id":152,"name":"IERC165","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":890,"src":"178:7:1","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":155,"name":"IERC20","nameLocations":["590:6:1"],"nodeType":"IdentifierPath","referencedDeclaration":315,"src":"590:6:1"},"id":156,"nodeType":"InheritanceSpecifier","src":"590:6:1"},{"baseName":{"id":157,"name":"IERC165","nameLocations":["598:7:1"],"nodeType":"IdentifierPath","referencedDeclaration":890,"src":"598:7:1"},"id":158,"nodeType":"InheritanceSpecifier","src":"598:7:1"}],"canonicalName":"IERC1363","contractDependencies":[],"contractKind":"interface","documentation":{"id":154,"nodeType":"StructuredDocumentation","src":"210:357:1","text":" @title IERC1363\n @dev Interface of the ERC-1363 standard as defined in the https://eips.ethereum.org/EIPS/eip-1363[ERC-1363].\n Defines an extension interface for ERC-20 tokens that supports executing code on a recipient contract\n after `transfer` or `transferFrom`, or code on a spender contract after `approve`, in a single transaction."},"fullyImplemented":false,"id":229,"linearizedBaseContracts":[229,890,315],"name":"IERC1363","nameLocation":"578:8:1","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":159,"nodeType":"StructuredDocumentation","src":"1148:370:1","text":" @dev Moves a `value` amount of tokens from the caller's account to `to`\n and then calls {IERC1363Receiver-onTransferReceived} on `to`.\n @param to The address which you want to transfer to.\n @param value The amount of tokens to be transferred.\n @return A boolean value indicating whether the operation succeeded unless throwing."},"functionSelector":"1296ee62","id":168,"implemented":false,"kind":"function","modifiers":[],"name":"transferAndCall","nameLocation":"1532:15:1","nodeType":"FunctionDefinition","parameters":{"id":164,"nodeType":"ParameterList","parameters":[{"constant":false,"id":161,"mutability":"mutable","name":"to","nameLocation":"1556:2:1","nodeType":"VariableDeclaration","scope":168,"src":"1548:10:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":160,"name":"address","nodeType":"ElementaryTypeName","src":"1548:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":163,"mutability":"mutable","name":"value","nameLocation":"1568:5:1","nodeType":"VariableDeclaration","scope":168,"src":"1560:13:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":162,"name":"uint256","nodeType":"ElementaryTypeName","src":"1560:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1547:27:1"},"returnParameters":{"id":167,"nodeType":"ParameterList","parameters":[{"constant":false,"id":166,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":168,"src":"1593:4:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":165,"name":"bool","nodeType":"ElementaryTypeName","src":"1593:4:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1592:6:1"},"scope":229,"src":"1523:76:1","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":169,"nodeType":"StructuredDocumentation","src":"1605:453:1","text":" @dev Moves a `value` amount of tokens from the caller's account to `to`\n and then calls {IERC1363Receiver-onTransferReceived} on `to`.\n @param to The address which you want to transfer to.\n @param value The amount of tokens to be transferred.\n @param data Additional data with no specified format, sent in call to `to`.\n @return A boolean value indicating whether the operation succeeded unless throwing."},"functionSelector":"4000aea0","id":180,"implemented":false,"kind":"function","modifiers":[],"name":"transferAndCall","nameLocation":"2072:15:1","nodeType":"FunctionDefinition","parameters":{"id":176,"nodeType":"ParameterList","parameters":[{"constant":false,"id":171,"mutability":"mutable","name":"to","nameLocation":"2096:2:1","nodeType":"VariableDeclaration","scope":180,"src":"2088:10:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":170,"name":"address","nodeType":"ElementaryTypeName","src":"2088:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":173,"mutability":"mutable","name":"value","nameLocation":"2108:5:1","nodeType":"VariableDeclaration","scope":180,"src":"2100:13:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":172,"name":"uint256","nodeType":"ElementaryTypeName","src":"2100:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":175,"mutability":"mutable","name":"data","nameLocation":"2130:4:1","nodeType":"VariableDeclaration","scope":180,"src":"2115:19:1","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":174,"name":"bytes","nodeType":"ElementaryTypeName","src":"2115:5:1","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2087:48:1"},"returnParameters":{"id":179,"nodeType":"ParameterList","parameters":[{"constant":false,"id":178,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":180,"src":"2154:4:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":177,"name":"bool","nodeType":"ElementaryTypeName","src":"2154:4:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2153:6:1"},"scope":229,"src":"2063:97:1","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":181,"nodeType":"StructuredDocumentation","src":"2166:453:1","text":" @dev Moves a `value` amount of tokens from `from` to `to` using the allowance mechanism\n and then calls {IERC1363Receiver-onTransferReceived} on `to`.\n @param from The address which you want to send tokens from.\n @param to The address which you want to transfer to.\n @param value The amount of tokens to be transferred.\n @return A boolean value indicating whether the operation succeeded unless throwing."},"functionSelector":"d8fbe994","id":192,"implemented":false,"kind":"function","modifiers":[],"name":"transferFromAndCall","nameLocation":"2633:19:1","nodeType":"FunctionDefinition","parameters":{"id":188,"nodeType":"ParameterList","parameters":[{"constant":false,"id":183,"mutability":"mutable","name":"from","nameLocation":"2661:4:1","nodeType":"VariableDeclaration","scope":192,"src":"2653:12:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":182,"name":"address","nodeType":"ElementaryTypeName","src":"2653:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":185,"mutability":"mutable","name":"to","nameLocation":"2675:2:1","nodeType":"VariableDeclaration","scope":192,"src":"2667:10:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":184,"name":"address","nodeType":"ElementaryTypeName","src":"2667:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":187,"mutability":"mutable","name":"value","nameLocation":"2687:5:1","nodeType":"VariableDeclaration","scope":192,"src":"2679:13:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":186,"name":"uint256","nodeType":"ElementaryTypeName","src":"2679:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2652:41:1"},"returnParameters":{"id":191,"nodeType":"ParameterList","parameters":[{"constant":false,"id":190,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":192,"src":"2712:4:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":189,"name":"bool","nodeType":"ElementaryTypeName","src":"2712:4:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2711:6:1"},"scope":229,"src":"2624:94:1","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":193,"nodeType":"StructuredDocumentation","src":"2724:536:1","text":" @dev Moves a `value` amount of tokens from `from` to `to` using the allowance mechanism\n and then calls {IERC1363Receiver-onTransferReceived} on `to`.\n @param from The address which you want to send tokens from.\n @param to The address which you want to transfer to.\n @param value The amount of tokens to be transferred.\n @param data Additional data with no specified format, sent in call to `to`.\n @return A boolean value indicating whether the operation succeeded unless throwing."},"functionSelector":"c1d34b89","id":206,"implemented":false,"kind":"function","modifiers":[],"name":"transferFromAndCall","nameLocation":"3274:19:1","nodeType":"FunctionDefinition","parameters":{"id":202,"nodeType":"ParameterList","parameters":[{"constant":false,"id":195,"mutability":"mutable","name":"from","nameLocation":"3302:4:1","nodeType":"VariableDeclaration","scope":206,"src":"3294:12:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":194,"name":"address","nodeType":"ElementaryTypeName","src":"3294:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":197,"mutability":"mutable","name":"to","nameLocation":"3316:2:1","nodeType":"VariableDeclaration","scope":206,"src":"3308:10:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":196,"name":"address","nodeType":"ElementaryTypeName","src":"3308:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":199,"mutability":"mutable","name":"value","nameLocation":"3328:5:1","nodeType":"VariableDeclaration","scope":206,"src":"3320:13:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":198,"name":"uint256","nodeType":"ElementaryTypeName","src":"3320:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":201,"mutability":"mutable","name":"data","nameLocation":"3350:4:1","nodeType":"VariableDeclaration","scope":206,"src":"3335:19:1","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":200,"name":"bytes","nodeType":"ElementaryTypeName","src":"3335:5:1","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3293:62:1"},"returnParameters":{"id":205,"nodeType":"ParameterList","parameters":[{"constant":false,"id":204,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":206,"src":"3374:4:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":203,"name":"bool","nodeType":"ElementaryTypeName","src":"3374:4:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"3373:6:1"},"scope":229,"src":"3265:115:1","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":207,"nodeType":"StructuredDocumentation","src":"3386:390:1","text":" @dev Sets a `value` amount of tokens as the allowance of `spender` over the\n caller's tokens and then calls {IERC1363Spender-onApprovalReceived} on `spender`.\n @param spender The address which will spend the funds.\n @param value The amount of tokens to be spent.\n @return A boolean value indicating whether the operation succeeded unless throwing."},"functionSelector":"3177029f","id":216,"implemented":false,"kind":"function","modifiers":[],"name":"approveAndCall","nameLocation":"3790:14:1","nodeType":"FunctionDefinition","parameters":{"id":212,"nodeType":"ParameterList","parameters":[{"constant":false,"id":209,"mutability":"mutable","name":"spender","nameLocation":"3813:7:1","nodeType":"VariableDeclaration","scope":216,"src":"3805:15:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":208,"name":"address","nodeType":"ElementaryTypeName","src":"3805:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":211,"mutability":"mutable","name":"value","nameLocation":"3830:5:1","nodeType":"VariableDeclaration","scope":216,"src":"3822:13:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":210,"name":"uint256","nodeType":"ElementaryTypeName","src":"3822:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3804:32:1"},"returnParameters":{"id":215,"nodeType":"ParameterList","parameters":[{"constant":false,"id":214,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":216,"src":"3855:4:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":213,"name":"bool","nodeType":"ElementaryTypeName","src":"3855:4:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"3854:6:1"},"scope":229,"src":"3781:80:1","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":217,"nodeType":"StructuredDocumentation","src":"3867:478:1","text":" @dev Sets a `value` amount of tokens as the allowance of `spender` over the\n caller's tokens and then calls {IERC1363Spender-onApprovalReceived} on `spender`.\n @param spender The address which will spend the funds.\n @param value The amount of tokens to be spent.\n @param data Additional data with no specified format, sent in call to `spender`.\n @return A boolean value indicating whether the operation succeeded unless throwing."},"functionSelector":"cae9ca51","id":228,"implemented":false,"kind":"function","modifiers":[],"name":"approveAndCall","nameLocation":"4359:14:1","nodeType":"FunctionDefinition","parameters":{"id":224,"nodeType":"ParameterList","parameters":[{"constant":false,"id":219,"mutability":"mutable","name":"spender","nameLocation":"4382:7:1","nodeType":"VariableDeclaration","scope":228,"src":"4374:15:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":218,"name":"address","nodeType":"ElementaryTypeName","src":"4374:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":221,"mutability":"mutable","name":"value","nameLocation":"4399:5:1","nodeType":"VariableDeclaration","scope":228,"src":"4391:13:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":220,"name":"uint256","nodeType":"ElementaryTypeName","src":"4391:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":223,"mutability":"mutable","name":"data","nameLocation":"4421:4:1","nodeType":"VariableDeclaration","scope":228,"src":"4406:19:1","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":222,"name":"bytes","nodeType":"ElementaryTypeName","src":"4406:5:1","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"4373:53:1"},"returnParameters":{"id":227,"nodeType":"ParameterList","parameters":[{"constant":false,"id":226,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":228,"src":"4445:4:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":225,"name":"bool","nodeType":"ElementaryTypeName","src":"4445:4:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"4444:6:1"},"scope":229,"src":"4350:101:1","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":230,"src":"568:3885:1","usedErrors":[],"usedEvents":[249,258]}],"src":"107:4347:1"},"id":1},"@openzeppelin/contracts/interfaces/IERC165.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/interfaces/IERC165.sol","exportedSymbols":{"IERC165":[890]},"id":234,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":231,"literals":["solidity",">=","0.4",".16"],"nodeType":"PragmaDirective","src":"106:25:2"},{"absolutePath":"@openzeppelin/contracts/utils/introspection/IERC165.sol","file":"../utils/introspection/IERC165.sol","id":233,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":234,"sourceUnit":891,"src":"133:59:2","symbolAliases":[{"foreign":{"id":232,"name":"IERC165","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":890,"src":"141:7:2","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""}],"src":"106:87:2"},"id":2},"@openzeppelin/contracts/interfaces/IERC20.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/interfaces/IERC20.sol","exportedSymbols":{"IERC20":[315]},"id":238,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":235,"literals":["solidity",">=","0.4",".16"],"nodeType":"PragmaDirective","src":"105:25:3"},{"absolutePath":"@openzeppelin/contracts/token/ERC20/IERC20.sol","file":"../token/ERC20/IERC20.sol","id":237,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":238,"sourceUnit":316,"src":"132:49:3","symbolAliases":[{"foreign":{"id":236,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":315,"src":"140:6:3","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""}],"src":"105:77:3"},"id":3},"@openzeppelin/contracts/token/ERC20/IERC20.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/token/ERC20/IERC20.sol","exportedSymbols":{"IERC20":[315]},"id":316,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":239,"literals":["solidity",">=","0.4",".16"],"nodeType":"PragmaDirective","src":"106:25:4"},{"abstract":false,"baseContracts":[],"canonicalName":"IERC20","contractDependencies":[],"contractKind":"interface","documentation":{"id":240,"nodeType":"StructuredDocumentation","src":"133:71:4","text":" @dev Interface of the ERC-20 standard as defined in the ERC."},"fullyImplemented":false,"id":315,"linearizedBaseContracts":[315],"name":"IERC20","nameLocation":"215:6:4","nodeType":"ContractDefinition","nodes":[{"anonymous":false,"documentation":{"id":241,"nodeType":"StructuredDocumentation","src":"228:158:4","text":" @dev Emitted when `value` tokens are moved from one account (`from`) to\n another (`to`).\n Note that `value` may be zero."},"eventSelector":"ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","id":249,"name":"Transfer","nameLocation":"397:8:4","nodeType":"EventDefinition","parameters":{"id":248,"nodeType":"ParameterList","parameters":[{"constant":false,"id":243,"indexed":true,"mutability":"mutable","name":"from","nameLocation":"422:4:4","nodeType":"VariableDeclaration","scope":249,"src":"406:20:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":242,"name":"address","nodeType":"ElementaryTypeName","src":"406:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":245,"indexed":true,"mutability":"mutable","name":"to","nameLocation":"444:2:4","nodeType":"VariableDeclaration","scope":249,"src":"428:18:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":244,"name":"address","nodeType":"ElementaryTypeName","src":"428:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":247,"indexed":false,"mutability":"mutable","name":"value","nameLocation":"456:5:4","nodeType":"VariableDeclaration","scope":249,"src":"448:13:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":246,"name":"uint256","nodeType":"ElementaryTypeName","src":"448:7:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"405:57:4"},"src":"391:72:4"},{"anonymous":false,"documentation":{"id":250,"nodeType":"StructuredDocumentation","src":"469:148:4","text":" @dev Emitted when the allowance of a `spender` for an `owner` is set by\n a call to {approve}. `value` is the new allowance."},"eventSelector":"8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925","id":258,"name":"Approval","nameLocation":"628:8:4","nodeType":"EventDefinition","parameters":{"id":257,"nodeType":"ParameterList","parameters":[{"constant":false,"id":252,"indexed":true,"mutability":"mutable","name":"owner","nameLocation":"653:5:4","nodeType":"VariableDeclaration","scope":258,"src":"637:21:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":251,"name":"address","nodeType":"ElementaryTypeName","src":"637:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":254,"indexed":true,"mutability":"mutable","name":"spender","nameLocation":"676:7:4","nodeType":"VariableDeclaration","scope":258,"src":"660:23:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":253,"name":"address","nodeType":"ElementaryTypeName","src":"660:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":256,"indexed":false,"mutability":"mutable","name":"value","nameLocation":"693:5:4","nodeType":"VariableDeclaration","scope":258,"src":"685:13:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":255,"name":"uint256","nodeType":"ElementaryTypeName","src":"685:7:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"636:63:4"},"src":"622:78:4"},{"documentation":{"id":259,"nodeType":"StructuredDocumentation","src":"706:65:4","text":" @dev Returns the value of tokens in existence."},"functionSelector":"18160ddd","id":264,"implemented":false,"kind":"function","modifiers":[],"name":"totalSupply","nameLocation":"785:11:4","nodeType":"FunctionDefinition","parameters":{"id":260,"nodeType":"ParameterList","parameters":[],"src":"796:2:4"},"returnParameters":{"id":263,"nodeType":"ParameterList","parameters":[{"constant":false,"id":262,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":264,"src":"822:7:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":261,"name":"uint256","nodeType":"ElementaryTypeName","src":"822:7:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"821:9:4"},"scope":315,"src":"776:55:4","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":265,"nodeType":"StructuredDocumentation","src":"837:71:4","text":" @dev Returns the value of tokens owned by `account`."},"functionSelector":"70a08231","id":272,"implemented":false,"kind":"function","modifiers":[],"name":"balanceOf","nameLocation":"922:9:4","nodeType":"FunctionDefinition","parameters":{"id":268,"nodeType":"ParameterList","parameters":[{"constant":false,"id":267,"mutability":"mutable","name":"account","nameLocation":"940:7:4","nodeType":"VariableDeclaration","scope":272,"src":"932:15:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":266,"name":"address","nodeType":"ElementaryTypeName","src":"932:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"931:17:4"},"returnParameters":{"id":271,"nodeType":"ParameterList","parameters":[{"constant":false,"id":270,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":272,"src":"972:7:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":269,"name":"uint256","nodeType":"ElementaryTypeName","src":"972:7:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"971:9:4"},"scope":315,"src":"913:68:4","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":273,"nodeType":"StructuredDocumentation","src":"987:213:4","text":" @dev Moves a `value` amount of 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":282,"implemented":false,"kind":"function","modifiers":[],"name":"transfer","nameLocation":"1214:8:4","nodeType":"FunctionDefinition","parameters":{"id":278,"nodeType":"ParameterList","parameters":[{"constant":false,"id":275,"mutability":"mutable","name":"to","nameLocation":"1231:2:4","nodeType":"VariableDeclaration","scope":282,"src":"1223:10:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":274,"name":"address","nodeType":"ElementaryTypeName","src":"1223:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":277,"mutability":"mutable","name":"value","nameLocation":"1243:5:4","nodeType":"VariableDeclaration","scope":282,"src":"1235:13:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":276,"name":"uint256","nodeType":"ElementaryTypeName","src":"1235:7:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1222:27:4"},"returnParameters":{"id":281,"nodeType":"ParameterList","parameters":[{"constant":false,"id":280,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":282,"src":"1268:4:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":279,"name":"bool","nodeType":"ElementaryTypeName","src":"1268:4:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1267:6:4"},"scope":315,"src":"1205:69:4","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":283,"nodeType":"StructuredDocumentation","src":"1280:264:4","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":292,"implemented":false,"kind":"function","modifiers":[],"name":"allowance","nameLocation":"1558:9:4","nodeType":"FunctionDefinition","parameters":{"id":288,"nodeType":"ParameterList","parameters":[{"constant":false,"id":285,"mutability":"mutable","name":"owner","nameLocation":"1576:5:4","nodeType":"VariableDeclaration","scope":292,"src":"1568:13:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":284,"name":"address","nodeType":"ElementaryTypeName","src":"1568:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":287,"mutability":"mutable","name":"spender","nameLocation":"1591:7:4","nodeType":"VariableDeclaration","scope":292,"src":"1583:15:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":286,"name":"address","nodeType":"ElementaryTypeName","src":"1583:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1567:32:4"},"returnParameters":{"id":291,"nodeType":"ParameterList","parameters":[{"constant":false,"id":290,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":292,"src":"1623:7:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":289,"name":"uint256","nodeType":"ElementaryTypeName","src":"1623:7:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1622:9:4"},"scope":315,"src":"1549:83:4","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":293,"nodeType":"StructuredDocumentation","src":"1638:667:4","text":" @dev Sets a `value` amount of tokens as the allowance of `spender` over the\n 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":302,"implemented":false,"kind":"function","modifiers":[],"name":"approve","nameLocation":"2319:7:4","nodeType":"FunctionDefinition","parameters":{"id":298,"nodeType":"ParameterList","parameters":[{"constant":false,"id":295,"mutability":"mutable","name":"spender","nameLocation":"2335:7:4","nodeType":"VariableDeclaration","scope":302,"src":"2327:15:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":294,"name":"address","nodeType":"ElementaryTypeName","src":"2327:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":297,"mutability":"mutable","name":"value","nameLocation":"2352:5:4","nodeType":"VariableDeclaration","scope":302,"src":"2344:13:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":296,"name":"uint256","nodeType":"ElementaryTypeName","src":"2344:7:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2326:32:4"},"returnParameters":{"id":301,"nodeType":"ParameterList","parameters":[{"constant":false,"id":300,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":302,"src":"2377:4:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":299,"name":"bool","nodeType":"ElementaryTypeName","src":"2377:4:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2376:6:4"},"scope":315,"src":"2310:73:4","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":303,"nodeType":"StructuredDocumentation","src":"2389:297:4","text":" @dev Moves a `value` amount of tokens from `from` to `to` using the\n allowance mechanism. `value` 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":314,"implemented":false,"kind":"function","modifiers":[],"name":"transferFrom","nameLocation":"2700:12:4","nodeType":"FunctionDefinition","parameters":{"id":310,"nodeType":"ParameterList","parameters":[{"constant":false,"id":305,"mutability":"mutable","name":"from","nameLocation":"2721:4:4","nodeType":"VariableDeclaration","scope":314,"src":"2713:12:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":304,"name":"address","nodeType":"ElementaryTypeName","src":"2713:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":307,"mutability":"mutable","name":"to","nameLocation":"2735:2:4","nodeType":"VariableDeclaration","scope":314,"src":"2727:10:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":306,"name":"address","nodeType":"ElementaryTypeName","src":"2727:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":309,"mutability":"mutable","name":"value","nameLocation":"2747:5:4","nodeType":"VariableDeclaration","scope":314,"src":"2739:13:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":308,"name":"uint256","nodeType":"ElementaryTypeName","src":"2739:7:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2712:41:4"},"returnParameters":{"id":313,"nodeType":"ParameterList","parameters":[{"constant":false,"id":312,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":314,"src":"2772:4:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":311,"name":"bool","nodeType":"ElementaryTypeName","src":"2772:4:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2771:6:4"},"scope":315,"src":"2691:87:4","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":316,"src":"205:2575:4","usedErrors":[],"usedEvents":[249,258]}],"src":"106:2675:4"},"id":4},"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol","exportedSymbols":{"IERC1363":[229],"IERC20":[315],"SafeERC20":[779]},"id":780,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":317,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"115:24:5"},{"absolutePath":"@openzeppelin/contracts/token/ERC20/IERC20.sol","file":"../IERC20.sol","id":319,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":780,"sourceUnit":316,"src":"141:37:5","symbolAliases":[{"foreign":{"id":318,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":315,"src":"149:6:5","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/interfaces/IERC1363.sol","file":"../../../interfaces/IERC1363.sol","id":321,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":780,"sourceUnit":230,"src":"179:58:5","symbolAliases":[{"foreign":{"id":320,"name":"IERC1363","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":229,"src":"187:8:5","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[],"canonicalName":"SafeERC20","contractDependencies":[],"contractKind":"library","documentation":{"id":322,"nodeType":"StructuredDocumentation","src":"239:458:5","text":" @title SafeERC20\n @dev Wrappers around ERC-20 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":779,"linearizedBaseContracts":[779],"name":"SafeERC20","nameLocation":"706:9:5","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":323,"nodeType":"StructuredDocumentation","src":"722:65:5","text":" @dev An operation with an ERC-20 token failed."},"errorSelector":"5274afe7","id":327,"name":"SafeERC20FailedOperation","nameLocation":"798:24:5","nodeType":"ErrorDefinition","parameters":{"id":326,"nodeType":"ParameterList","parameters":[{"constant":false,"id":325,"mutability":"mutable","name":"token","nameLocation":"831:5:5","nodeType":"VariableDeclaration","scope":327,"src":"823:13:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":324,"name":"address","nodeType":"ElementaryTypeName","src":"823:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"822:15:5"},"src":"792:46:5"},{"documentation":{"id":328,"nodeType":"StructuredDocumentation","src":"844:71:5","text":" @dev Indicates a failed `decreaseAllowance` request."},"errorSelector":"e570110f","id":336,"name":"SafeERC20FailedDecreaseAllowance","nameLocation":"926:32:5","nodeType":"ErrorDefinition","parameters":{"id":335,"nodeType":"ParameterList","parameters":[{"constant":false,"id":330,"mutability":"mutable","name":"spender","nameLocation":"967:7:5","nodeType":"VariableDeclaration","scope":336,"src":"959:15:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":329,"name":"address","nodeType":"ElementaryTypeName","src":"959:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":332,"mutability":"mutable","name":"currentAllowance","nameLocation":"984:16:5","nodeType":"VariableDeclaration","scope":336,"src":"976:24:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":331,"name":"uint256","nodeType":"ElementaryTypeName","src":"976:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":334,"mutability":"mutable","name":"requestedDecrease","nameLocation":"1010:17:5","nodeType":"VariableDeclaration","scope":336,"src":"1002:25:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":333,"name":"uint256","nodeType":"ElementaryTypeName","src":"1002:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"958:70:5"},"src":"920:109:5"},{"body":{"id":359,"nodeType":"Block","src":"1291:88:5","statements":[{"expression":{"arguments":[{"id":348,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":340,"src":"1321:5:5","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$315","typeString":"contract IERC20"}},{"arguments":[{"expression":{"id":351,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":340,"src":"1343:5:5","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$315","typeString":"contract IERC20"}},"id":352,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1349:8:5","memberName":"transfer","nodeType":"MemberAccess","referencedDeclaration":282,"src":"1343:14:5","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},{"components":[{"id":353,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":342,"src":"1360:2:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":354,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":344,"src":"1364:5:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":355,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"1359:11:5","typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_uint256_$","typeString":"tuple(address,uint256)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"},{"typeIdentifier":"t_tuple$_t_address_$_t_uint256_$","typeString":"tuple(address,uint256)"}],"expression":{"id":349,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1328:3:5","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":350,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1332:10:5","memberName":"encodeCall","nodeType":"MemberAccess","src":"1328:14:5","typeDescriptions":{"typeIdentifier":"t_function_abiencodecall_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":356,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1328:43:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$315","typeString":"contract IERC20"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":347,"name":"_callOptionalReturn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":737,"src":"1301:19:5","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_IERC20_$315_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (contract IERC20,bytes memory)"}},"id":357,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1301:71:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":358,"nodeType":"ExpressionStatement","src":"1301:71:5"}]},"documentation":{"id":337,"nodeType":"StructuredDocumentation","src":"1035:179:5","text":" @dev Transfer `value` amount of `token` from the calling contract to `to`. If `token` returns no value,\n non-reverting calls are assumed to be successful."},"id":360,"implemented":true,"kind":"function","modifiers":[],"name":"safeTransfer","nameLocation":"1228:12:5","nodeType":"FunctionDefinition","parameters":{"id":345,"nodeType":"ParameterList","parameters":[{"constant":false,"id":340,"mutability":"mutable","name":"token","nameLocation":"1248:5:5","nodeType":"VariableDeclaration","scope":360,"src":"1241:12:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$315","typeString":"contract IERC20"},"typeName":{"id":339,"nodeType":"UserDefinedTypeName","pathNode":{"id":338,"name":"IERC20","nameLocations":["1241:6:5"],"nodeType":"IdentifierPath","referencedDeclaration":315,"src":"1241:6:5"},"referencedDeclaration":315,"src":"1241:6:5","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$315","typeString":"contract IERC20"}},"visibility":"internal"},{"constant":false,"id":342,"mutability":"mutable","name":"to","nameLocation":"1263:2:5","nodeType":"VariableDeclaration","scope":360,"src":"1255:10:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":341,"name":"address","nodeType":"ElementaryTypeName","src":"1255:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":344,"mutability":"mutable","name":"value","nameLocation":"1275:5:5","nodeType":"VariableDeclaration","scope":360,"src":"1267:13:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":343,"name":"uint256","nodeType":"ElementaryTypeName","src":"1267:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1240:41:5"},"returnParameters":{"id":346,"nodeType":"ParameterList","parameters":[],"src":"1291:0:5"},"scope":779,"src":"1219:160:5","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":386,"nodeType":"Block","src":"1708:98:5","statements":[{"expression":{"arguments":[{"id":374,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":364,"src":"1738:5:5","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$315","typeString":"contract IERC20"}},{"arguments":[{"expression":{"id":377,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":364,"src":"1760:5:5","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$315","typeString":"contract IERC20"}},"id":378,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1766:12:5","memberName":"transferFrom","nodeType":"MemberAccess","referencedDeclaration":314,"src":"1760:18:5","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,address,uint256) external returns (bool)"}},{"components":[{"id":379,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":366,"src":"1781:4:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":380,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":368,"src":"1787:2:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":381,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":370,"src":"1791:5:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":382,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"1780:17:5","typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_address_$_t_uint256_$","typeString":"tuple(address,address,uint256)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,address,uint256) external returns (bool)"},{"typeIdentifier":"t_tuple$_t_address_$_t_address_$_t_uint256_$","typeString":"tuple(address,address,uint256)"}],"expression":{"id":375,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1745:3:5","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":376,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1749:10:5","memberName":"encodeCall","nodeType":"MemberAccess","src":"1745:14:5","typeDescriptions":{"typeIdentifier":"t_function_abiencodecall_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":383,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1745:53:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$315","typeString":"contract IERC20"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":373,"name":"_callOptionalReturn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":737,"src":"1718:19:5","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_IERC20_$315_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (contract IERC20,bytes memory)"}},"id":384,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1718:81:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":385,"nodeType":"ExpressionStatement","src":"1718:81:5"}]},"documentation":{"id":361,"nodeType":"StructuredDocumentation","src":"1385:228:5","text":" @dev Transfer `value` amount of `token` from `from` to `to`, spending the approval given by `from` to the\n calling contract. If `token` returns no value, non-reverting calls are assumed to be successful."},"id":387,"implemented":true,"kind":"function","modifiers":[],"name":"safeTransferFrom","nameLocation":"1627:16:5","nodeType":"FunctionDefinition","parameters":{"id":371,"nodeType":"ParameterList","parameters":[{"constant":false,"id":364,"mutability":"mutable","name":"token","nameLocation":"1651:5:5","nodeType":"VariableDeclaration","scope":387,"src":"1644:12:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$315","typeString":"contract IERC20"},"typeName":{"id":363,"nodeType":"UserDefinedTypeName","pathNode":{"id":362,"name":"IERC20","nameLocations":["1644:6:5"],"nodeType":"IdentifierPath","referencedDeclaration":315,"src":"1644:6:5"},"referencedDeclaration":315,"src":"1644:6:5","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$315","typeString":"contract IERC20"}},"visibility":"internal"},{"constant":false,"id":366,"mutability":"mutable","name":"from","nameLocation":"1666:4:5","nodeType":"VariableDeclaration","scope":387,"src":"1658:12:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":365,"name":"address","nodeType":"ElementaryTypeName","src":"1658:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":368,"mutability":"mutable","name":"to","nameLocation":"1680:2:5","nodeType":"VariableDeclaration","scope":387,"src":"1672:10:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":367,"name":"address","nodeType":"ElementaryTypeName","src":"1672:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":370,"mutability":"mutable","name":"value","nameLocation":"1692:5:5","nodeType":"VariableDeclaration","scope":387,"src":"1684:13:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":369,"name":"uint256","nodeType":"ElementaryTypeName","src":"1684:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1643:55:5"},"returnParameters":{"id":372,"nodeType":"ParameterList","parameters":[],"src":"1708:0:5"},"scope":779,"src":"1618:188:5","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":412,"nodeType":"Block","src":"2033:99:5","statements":[{"expression":{"arguments":[{"id":401,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":391,"src":"2074:5:5","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$315","typeString":"contract IERC20"}},{"arguments":[{"expression":{"id":404,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":391,"src":"2096:5:5","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$315","typeString":"contract IERC20"}},"id":405,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2102:8:5","memberName":"transfer","nodeType":"MemberAccess","referencedDeclaration":282,"src":"2096:14:5","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},{"components":[{"id":406,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":393,"src":"2113:2:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":407,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":395,"src":"2117:5:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":408,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2112:11:5","typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_uint256_$","typeString":"tuple(address,uint256)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"},{"typeIdentifier":"t_tuple$_t_address_$_t_uint256_$","typeString":"tuple(address,uint256)"}],"expression":{"id":402,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2081:3:5","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":403,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2085:10:5","memberName":"encodeCall","nodeType":"MemberAccess","src":"2081:14:5","typeDescriptions":{"typeIdentifier":"t_function_abiencodecall_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":409,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2081:43:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$315","typeString":"contract IERC20"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":400,"name":"_callOptionalReturnBool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":778,"src":"2050:23:5","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_IERC20_$315_$_t_bytes_memory_ptr_$returns$_t_bool_$","typeString":"function (contract IERC20,bytes memory) returns (bool)"}},"id":410,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2050:75:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":399,"id":411,"nodeType":"Return","src":"2043:82:5"}]},"documentation":{"id":388,"nodeType":"StructuredDocumentation","src":"1812:126:5","text":" @dev Variant of {safeTransfer} that returns a bool instead of reverting if the operation is not successful."},"id":413,"implemented":true,"kind":"function","modifiers":[],"name":"trySafeTransfer","nameLocation":"1952:15:5","nodeType":"FunctionDefinition","parameters":{"id":396,"nodeType":"ParameterList","parameters":[{"constant":false,"id":391,"mutability":"mutable","name":"token","nameLocation":"1975:5:5","nodeType":"VariableDeclaration","scope":413,"src":"1968:12:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$315","typeString":"contract IERC20"},"typeName":{"id":390,"nodeType":"UserDefinedTypeName","pathNode":{"id":389,"name":"IERC20","nameLocations":["1968:6:5"],"nodeType":"IdentifierPath","referencedDeclaration":315,"src":"1968:6:5"},"referencedDeclaration":315,"src":"1968:6:5","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$315","typeString":"contract IERC20"}},"visibility":"internal"},{"constant":false,"id":393,"mutability":"mutable","name":"to","nameLocation":"1990:2:5","nodeType":"VariableDeclaration","scope":413,"src":"1982:10:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":392,"name":"address","nodeType":"ElementaryTypeName","src":"1982:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":395,"mutability":"mutable","name":"value","nameLocation":"2002:5:5","nodeType":"VariableDeclaration","scope":413,"src":"1994:13:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":394,"name":"uint256","nodeType":"ElementaryTypeName","src":"1994:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1967:41:5"},"returnParameters":{"id":399,"nodeType":"ParameterList","parameters":[{"constant":false,"id":398,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":413,"src":"2027:4:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":397,"name":"bool","nodeType":"ElementaryTypeName","src":"2027:4:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2026:6:5"},"scope":779,"src":"1943:189:5","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":441,"nodeType":"Block","src":"2381:109:5","statements":[{"expression":{"arguments":[{"id":429,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":417,"src":"2422:5:5","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$315","typeString":"contract IERC20"}},{"arguments":[{"expression":{"id":432,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":417,"src":"2444:5:5","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$315","typeString":"contract IERC20"}},"id":433,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2450:12:5","memberName":"transferFrom","nodeType":"MemberAccess","referencedDeclaration":314,"src":"2444:18:5","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,address,uint256) external returns (bool)"}},{"components":[{"id":434,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":419,"src":"2465:4:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":435,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":421,"src":"2471:2:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":436,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":423,"src":"2475:5:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":437,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2464:17:5","typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_address_$_t_uint256_$","typeString":"tuple(address,address,uint256)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,address,uint256) external returns (bool)"},{"typeIdentifier":"t_tuple$_t_address_$_t_address_$_t_uint256_$","typeString":"tuple(address,address,uint256)"}],"expression":{"id":430,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2429:3:5","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":431,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2433:10:5","memberName":"encodeCall","nodeType":"MemberAccess","src":"2429:14:5","typeDescriptions":{"typeIdentifier":"t_function_abiencodecall_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":438,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2429:53:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$315","typeString":"contract IERC20"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":428,"name":"_callOptionalReturnBool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":778,"src":"2398:23:5","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_IERC20_$315_$_t_bytes_memory_ptr_$returns$_t_bool_$","typeString":"function (contract IERC20,bytes memory) returns (bool)"}},"id":439,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2398:85:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":427,"id":440,"nodeType":"Return","src":"2391:92:5"}]},"documentation":{"id":414,"nodeType":"StructuredDocumentation","src":"2138:130:5","text":" @dev Variant of {safeTransferFrom} that returns a bool instead of reverting if the operation is not successful."},"id":442,"implemented":true,"kind":"function","modifiers":[],"name":"trySafeTransferFrom","nameLocation":"2282:19:5","nodeType":"FunctionDefinition","parameters":{"id":424,"nodeType":"ParameterList","parameters":[{"constant":false,"id":417,"mutability":"mutable","name":"token","nameLocation":"2309:5:5","nodeType":"VariableDeclaration","scope":442,"src":"2302:12:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$315","typeString":"contract IERC20"},"typeName":{"id":416,"nodeType":"UserDefinedTypeName","pathNode":{"id":415,"name":"IERC20","nameLocations":["2302:6:5"],"nodeType":"IdentifierPath","referencedDeclaration":315,"src":"2302:6:5"},"referencedDeclaration":315,"src":"2302:6:5","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$315","typeString":"contract IERC20"}},"visibility":"internal"},{"constant":false,"id":419,"mutability":"mutable","name":"from","nameLocation":"2324:4:5","nodeType":"VariableDeclaration","scope":442,"src":"2316:12:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":418,"name":"address","nodeType":"ElementaryTypeName","src":"2316:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":421,"mutability":"mutable","name":"to","nameLocation":"2338:2:5","nodeType":"VariableDeclaration","scope":442,"src":"2330:10:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":420,"name":"address","nodeType":"ElementaryTypeName","src":"2330:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":423,"mutability":"mutable","name":"value","nameLocation":"2350:5:5","nodeType":"VariableDeclaration","scope":442,"src":"2342:13:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":422,"name":"uint256","nodeType":"ElementaryTypeName","src":"2342:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2301:55:5"},"returnParameters":{"id":427,"nodeType":"ParameterList","parameters":[{"constant":false,"id":426,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":442,"src":"2375:4:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":425,"name":"bool","nodeType":"ElementaryTypeName","src":"2375:4:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2374:6:5"},"scope":779,"src":"2273:217:5","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":472,"nodeType":"Block","src":"3232:139:5","statements":[{"assignments":[454],"declarations":[{"constant":false,"id":454,"mutability":"mutable","name":"oldAllowance","nameLocation":"3250:12:5","nodeType":"VariableDeclaration","scope":472,"src":"3242:20:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":453,"name":"uint256","nodeType":"ElementaryTypeName","src":"3242:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":463,"initialValue":{"arguments":[{"arguments":[{"id":459,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"3289:4:5","typeDescriptions":{"typeIdentifier":"t_contract$_SafeERC20_$779","typeString":"library SafeERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SafeERC20_$779","typeString":"library SafeERC20"}],"id":458,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3281:7:5","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":457,"name":"address","nodeType":"ElementaryTypeName","src":"3281:7:5","typeDescriptions":{}}},"id":460,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3281:13:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":461,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":448,"src":"3296:7:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":455,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":446,"src":"3265:5:5","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$315","typeString":"contract IERC20"}},"id":456,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3271:9:5","memberName":"allowance","nodeType":"MemberAccess","referencedDeclaration":292,"src":"3265:15:5","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$","typeString":"function (address,address) view external returns (uint256)"}},"id":462,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3265:39:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3242:62:5"},{"expression":{"arguments":[{"id":465,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":446,"src":"3327:5:5","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$315","typeString":"contract IERC20"}},{"id":466,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":448,"src":"3334:7:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":469,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":467,"name":"oldAllowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":454,"src":"3343:12:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":468,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":450,"src":"3358:5:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3343:20:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$315","typeString":"contract IERC20"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":464,"name":"forceApprove","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":563,"src":"3314:12:5","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_IERC20_$315_$_t_address_$_t_uint256_$returns$__$","typeString":"function (contract IERC20,address,uint256)"}},"id":470,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3314:50:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":471,"nodeType":"ExpressionStatement","src":"3314:50:5"}]},"documentation":{"id":443,"nodeType":"StructuredDocumentation","src":"2496:645:5","text":" @dev Increase the calling contract's allowance toward `spender` by `value`. If `token` returns no value,\n non-reverting calls are assumed to be successful.\n IMPORTANT: If the token implements ERC-7674 (ERC-20 with temporary allowance), and if the \"client\"\n smart contract uses ERC-7674 to set temporary allowances, then the \"client\" smart contract should avoid using\n this function. Performing a {safeIncreaseAllowance} or {safeDecreaseAllowance} operation on a token contract\n that has a non-zero temporary allowance (for that particular owner-spender) will result in unexpected behavior."},"id":473,"implemented":true,"kind":"function","modifiers":[],"name":"safeIncreaseAllowance","nameLocation":"3155:21:5","nodeType":"FunctionDefinition","parameters":{"id":451,"nodeType":"ParameterList","parameters":[{"constant":false,"id":446,"mutability":"mutable","name":"token","nameLocation":"3184:5:5","nodeType":"VariableDeclaration","scope":473,"src":"3177:12:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$315","typeString":"contract IERC20"},"typeName":{"id":445,"nodeType":"UserDefinedTypeName","pathNode":{"id":444,"name":"IERC20","nameLocations":["3177:6:5"],"nodeType":"IdentifierPath","referencedDeclaration":315,"src":"3177:6:5"},"referencedDeclaration":315,"src":"3177:6:5","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$315","typeString":"contract IERC20"}},"visibility":"internal"},{"constant":false,"id":448,"mutability":"mutable","name":"spender","nameLocation":"3199:7:5","nodeType":"VariableDeclaration","scope":473,"src":"3191:15:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":447,"name":"address","nodeType":"ElementaryTypeName","src":"3191:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":450,"mutability":"mutable","name":"value","nameLocation":"3216:5:5","nodeType":"VariableDeclaration","scope":473,"src":"3208:13:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":449,"name":"uint256","nodeType":"ElementaryTypeName","src":"3208:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3176:46:5"},"returnParameters":{"id":452,"nodeType":"ParameterList","parameters":[],"src":"3232:0:5"},"scope":779,"src":"3146:225:5","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":515,"nodeType":"Block","src":"4137:370:5","statements":[{"id":514,"nodeType":"UncheckedBlock","src":"4147:354:5","statements":[{"assignments":[485],"declarations":[{"constant":false,"id":485,"mutability":"mutable","name":"currentAllowance","nameLocation":"4179:16:5","nodeType":"VariableDeclaration","scope":514,"src":"4171:24:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":484,"name":"uint256","nodeType":"ElementaryTypeName","src":"4171:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":494,"initialValue":{"arguments":[{"arguments":[{"id":490,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"4222:4:5","typeDescriptions":{"typeIdentifier":"t_contract$_SafeERC20_$779","typeString":"library SafeERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SafeERC20_$779","typeString":"library SafeERC20"}],"id":489,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4214:7:5","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":488,"name":"address","nodeType":"ElementaryTypeName","src":"4214:7:5","typeDescriptions":{}}},"id":491,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4214:13:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":492,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":479,"src":"4229:7:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":486,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":477,"src":"4198:5:5","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$315","typeString":"contract IERC20"}},"id":487,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4204:9:5","memberName":"allowance","nodeType":"MemberAccess","referencedDeclaration":292,"src":"4198:15:5","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$","typeString":"function (address,address) view external returns (uint256)"}},"id":493,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4198:39:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4171:66:5"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":497,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":495,"name":"currentAllowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":485,"src":"4255:16:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":496,"name":"requestedDecrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":481,"src":"4274:17:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4255:36:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":505,"nodeType":"IfStatement","src":"4251:160:5","trueBody":{"id":504,"nodeType":"Block","src":"4293:118:5","statements":[{"errorCall":{"arguments":[{"id":499,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":479,"src":"4351:7:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":500,"name":"currentAllowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":485,"src":"4360:16:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":501,"name":"requestedDecrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":481,"src":"4378:17:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":498,"name":"SafeERC20FailedDecreaseAllowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":336,"src":"4318:32:5","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (address,uint256,uint256) pure"}},"id":502,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4318:78:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":503,"nodeType":"RevertStatement","src":"4311:85:5"}]}},{"expression":{"arguments":[{"id":507,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":477,"src":"4437:5:5","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$315","typeString":"contract IERC20"}},{"id":508,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":479,"src":"4444:7:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":511,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":509,"name":"currentAllowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":485,"src":"4453:16:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":510,"name":"requestedDecrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":481,"src":"4472:17:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4453:36:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$315","typeString":"contract IERC20"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":506,"name":"forceApprove","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":563,"src":"4424:12:5","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_IERC20_$315_$_t_address_$_t_uint256_$returns$__$","typeString":"function (contract IERC20,address,uint256)"}},"id":512,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4424:66:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":513,"nodeType":"ExpressionStatement","src":"4424:66:5"}]}]},"documentation":{"id":474,"nodeType":"StructuredDocumentation","src":"3377:657:5","text":" @dev Decrease the calling contract's allowance toward `spender` by `requestedDecrease`. If `token` returns no\n value, non-reverting calls are assumed to be successful.\n IMPORTANT: If the token implements ERC-7674 (ERC-20 with temporary allowance), and if the \"client\"\n smart contract uses ERC-7674 to set temporary allowances, then the \"client\" smart contract should avoid using\n this function. Performing a {safeIncreaseAllowance} or {safeDecreaseAllowance} operation on a token contract\n that has a non-zero temporary allowance (for that particular owner-spender) will result in unexpected behavior."},"id":516,"implemented":true,"kind":"function","modifiers":[],"name":"safeDecreaseAllowance","nameLocation":"4048:21:5","nodeType":"FunctionDefinition","parameters":{"id":482,"nodeType":"ParameterList","parameters":[{"constant":false,"id":477,"mutability":"mutable","name":"token","nameLocation":"4077:5:5","nodeType":"VariableDeclaration","scope":516,"src":"4070:12:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$315","typeString":"contract IERC20"},"typeName":{"id":476,"nodeType":"UserDefinedTypeName","pathNode":{"id":475,"name":"IERC20","nameLocations":["4070:6:5"],"nodeType":"IdentifierPath","referencedDeclaration":315,"src":"4070:6:5"},"referencedDeclaration":315,"src":"4070:6:5","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$315","typeString":"contract IERC20"}},"visibility":"internal"},{"constant":false,"id":479,"mutability":"mutable","name":"spender","nameLocation":"4092:7:5","nodeType":"VariableDeclaration","scope":516,"src":"4084:15:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":478,"name":"address","nodeType":"ElementaryTypeName","src":"4084:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":481,"mutability":"mutable","name":"requestedDecrease","nameLocation":"4109:17:5","nodeType":"VariableDeclaration","scope":516,"src":"4101:25:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":480,"name":"uint256","nodeType":"ElementaryTypeName","src":"4101:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4069:58:5"},"returnParameters":{"id":483,"nodeType":"ParameterList","parameters":[],"src":"4137:0:5"},"scope":779,"src":"4039:468:5","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":562,"nodeType":"Block","src":"5161:303:5","statements":[{"assignments":[528],"declarations":[{"constant":false,"id":528,"mutability":"mutable","name":"approvalCall","nameLocation":"5184:12:5","nodeType":"VariableDeclaration","scope":562,"src":"5171:25:5","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":527,"name":"bytes","nodeType":"ElementaryTypeName","src":"5171:5:5","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":537,"initialValue":{"arguments":[{"expression":{"id":531,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":520,"src":"5214:5:5","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$315","typeString":"contract IERC20"}},"id":532,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5220:7:5","memberName":"approve","nodeType":"MemberAccess","referencedDeclaration":302,"src":"5214:13:5","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},{"components":[{"id":533,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":522,"src":"5230:7:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":534,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":524,"src":"5239:5:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":535,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"5229:16:5","typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_uint256_$","typeString":"tuple(address,uint256)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"},{"typeIdentifier":"t_tuple$_t_address_$_t_uint256_$","typeString":"tuple(address,uint256)"}],"expression":{"id":529,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"5199:3:5","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":530,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5203:10:5","memberName":"encodeCall","nodeType":"MemberAccess","src":"5199:14:5","typeDescriptions":{"typeIdentifier":"t_function_abiencodecall_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":536,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5199:47:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"5171:75:5"},{"condition":{"id":542,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"5261:45:5","subExpression":{"arguments":[{"id":539,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":520,"src":"5286:5:5","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$315","typeString":"contract IERC20"}},{"id":540,"name":"approvalCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":528,"src":"5293:12:5","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$315","typeString":"contract IERC20"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":538,"name":"_callOptionalReturnBool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":778,"src":"5262:23:5","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_IERC20_$315_$_t_bytes_memory_ptr_$returns$_t_bool_$","typeString":"function (contract IERC20,bytes memory) returns (bool)"}},"id":541,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5262:44:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":561,"nodeType":"IfStatement","src":"5257:201:5","trueBody":{"id":560,"nodeType":"Block","src":"5308:150:5","statements":[{"expression":{"arguments":[{"id":544,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":520,"src":"5342:5:5","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$315","typeString":"contract IERC20"}},{"arguments":[{"expression":{"id":547,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":520,"src":"5364:5:5","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$315","typeString":"contract IERC20"}},"id":548,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5370:7:5","memberName":"approve","nodeType":"MemberAccess","referencedDeclaration":302,"src":"5364:13:5","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},{"components":[{"id":549,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":522,"src":"5380:7:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"30","id":550,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5389:1:5","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"id":551,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"5379:12:5","typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_rational_0_by_1_$","typeString":"tuple(address,int_const 0)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"},{"typeIdentifier":"t_tuple$_t_address_$_t_rational_0_by_1_$","typeString":"tuple(address,int_const 0)"}],"expression":{"id":545,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"5349:3:5","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":546,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5353:10:5","memberName":"encodeCall","nodeType":"MemberAccess","src":"5349:14:5","typeDescriptions":{"typeIdentifier":"t_function_abiencodecall_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":552,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5349:43:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$315","typeString":"contract IERC20"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":543,"name":"_callOptionalReturn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":737,"src":"5322:19:5","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_IERC20_$315_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (contract IERC20,bytes memory)"}},"id":553,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5322:71:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":554,"nodeType":"ExpressionStatement","src":"5322:71:5"},{"expression":{"arguments":[{"id":556,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":520,"src":"5427:5:5","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$315","typeString":"contract IERC20"}},{"id":557,"name":"approvalCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":528,"src":"5434:12:5","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$315","typeString":"contract IERC20"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":555,"name":"_callOptionalReturn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":737,"src":"5407:19:5","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_IERC20_$315_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (contract IERC20,bytes memory)"}},"id":558,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5407:40:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":559,"nodeType":"ExpressionStatement","src":"5407:40:5"}]}}]},"documentation":{"id":517,"nodeType":"StructuredDocumentation","src":"4513:566:5","text":" @dev Set the calling contract's allowance toward `spender` to `value`. If `token` returns no value,\n non-reverting calls are assumed to be successful. Meant to be used with tokens that require the approval\n to be set to zero before setting it to a non-zero value, such as USDT.\n NOTE: If the token implements ERC-7674, this function will not modify any temporary allowance. This function\n only sets the \"standard\" allowance. Any temporary allowance will remain active, in addition to the value being\n set here."},"id":563,"implemented":true,"kind":"function","modifiers":[],"name":"forceApprove","nameLocation":"5093:12:5","nodeType":"FunctionDefinition","parameters":{"id":525,"nodeType":"ParameterList","parameters":[{"constant":false,"id":520,"mutability":"mutable","name":"token","nameLocation":"5113:5:5","nodeType":"VariableDeclaration","scope":563,"src":"5106:12:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$315","typeString":"contract IERC20"},"typeName":{"id":519,"nodeType":"UserDefinedTypeName","pathNode":{"id":518,"name":"IERC20","nameLocations":["5106:6:5"],"nodeType":"IdentifierPath","referencedDeclaration":315,"src":"5106:6:5"},"referencedDeclaration":315,"src":"5106:6:5","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$315","typeString":"contract IERC20"}},"visibility":"internal"},{"constant":false,"id":522,"mutability":"mutable","name":"spender","nameLocation":"5128:7:5","nodeType":"VariableDeclaration","scope":563,"src":"5120:15:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":521,"name":"address","nodeType":"ElementaryTypeName","src":"5120:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":524,"mutability":"mutable","name":"value","nameLocation":"5145:5:5","nodeType":"VariableDeclaration","scope":563,"src":"5137:13:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":523,"name":"uint256","nodeType":"ElementaryTypeName","src":"5137:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5105:46:5"},"returnParameters":{"id":526,"nodeType":"ParameterList","parameters":[],"src":"5161:0:5"},"scope":779,"src":"5084:380:5","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":605,"nodeType":"Block","src":"5911:219:5","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":580,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":576,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":569,"src":"5925:2:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":577,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5928:4:5","memberName":"code","nodeType":"MemberAccess","src":"5925:7:5","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":578,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5933:6:5","memberName":"length","nodeType":"MemberAccess","src":"5925:14:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":579,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5943:1:5","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"5925:19:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"id":594,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"6011:39:5","subExpression":{"arguments":[{"id":590,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":569,"src":"6034:2:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":591,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":571,"src":"6038:5:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":592,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":573,"src":"6045:4: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"}],"expression":{"id":588,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":567,"src":"6012:5:5","typeDescriptions":{"typeIdentifier":"t_contract$_IERC1363_$229","typeString":"contract IERC1363"}},"id":589,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6018:15:5","memberName":"transferAndCall","nodeType":"MemberAccess","referencedDeclaration":180,"src":"6012:21:5","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_bool_$","typeString":"function (address,uint256,bytes memory) external returns (bool)"}},"id":593,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6012:38:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":603,"nodeType":"IfStatement","src":"6007:117:5","trueBody":{"id":602,"nodeType":"Block","src":"6052:72:5","statements":[{"errorCall":{"arguments":[{"arguments":[{"id":598,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":567,"src":"6106:5:5","typeDescriptions":{"typeIdentifier":"t_contract$_IERC1363_$229","typeString":"contract IERC1363"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC1363_$229","typeString":"contract IERC1363"}],"id":597,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6098:7:5","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":596,"name":"address","nodeType":"ElementaryTypeName","src":"6098:7:5","typeDescriptions":{}}},"id":599,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6098:14:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":595,"name":"SafeERC20FailedOperation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":327,"src":"6073:24:5","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":600,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6073:40:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":601,"nodeType":"RevertStatement","src":"6066:47:5"}]}},"id":604,"nodeType":"IfStatement","src":"5921:203:5","trueBody":{"id":587,"nodeType":"Block","src":"5946:55:5","statements":[{"expression":{"arguments":[{"id":582,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":567,"src":"5973:5:5","typeDescriptions":{"typeIdentifier":"t_contract$_IERC1363_$229","typeString":"contract IERC1363"}},{"id":583,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":569,"src":"5980:2:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":584,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":571,"src":"5984:5:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC1363_$229","typeString":"contract IERC1363"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":581,"name":"safeTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":360,"src":"5960:12:5","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_IERC20_$315_$_t_address_$_t_uint256_$returns$__$","typeString":"function (contract IERC20,address,uint256)"}},"id":585,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5960:30:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":586,"nodeType":"ExpressionStatement","src":"5960:30:5"}]}}]},"documentation":{"id":564,"nodeType":"StructuredDocumentation","src":"5470:333:5","text":" @dev Performs an {ERC1363} transferAndCall, with a fallback to the simple {ERC20} transfer if the target has no\n code. This can be used to implement an {ERC721}-like safe transfer that rely on {ERC1363} checks when\n targeting contracts.\n Reverts if the returned value is other than `true`."},"id":606,"implemented":true,"kind":"function","modifiers":[],"name":"transferAndCallRelaxed","nameLocation":"5817:22:5","nodeType":"FunctionDefinition","parameters":{"id":574,"nodeType":"ParameterList","parameters":[{"constant":false,"id":567,"mutability":"mutable","name":"token","nameLocation":"5849:5:5","nodeType":"VariableDeclaration","scope":606,"src":"5840:14:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC1363_$229","typeString":"contract IERC1363"},"typeName":{"id":566,"nodeType":"UserDefinedTypeName","pathNode":{"id":565,"name":"IERC1363","nameLocations":["5840:8:5"],"nodeType":"IdentifierPath","referencedDeclaration":229,"src":"5840:8:5"},"referencedDeclaration":229,"src":"5840:8:5","typeDescriptions":{"typeIdentifier":"t_contract$_IERC1363_$229","typeString":"contract IERC1363"}},"visibility":"internal"},{"constant":false,"id":569,"mutability":"mutable","name":"to","nameLocation":"5864:2:5","nodeType":"VariableDeclaration","scope":606,"src":"5856:10:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":568,"name":"address","nodeType":"ElementaryTypeName","src":"5856:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":571,"mutability":"mutable","name":"value","nameLocation":"5876:5:5","nodeType":"VariableDeclaration","scope":606,"src":"5868:13:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":570,"name":"uint256","nodeType":"ElementaryTypeName","src":"5868:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":573,"mutability":"mutable","name":"data","nameLocation":"5896:4:5","nodeType":"VariableDeclaration","scope":606,"src":"5883:17:5","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":572,"name":"bytes","nodeType":"ElementaryTypeName","src":"5883:5:5","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"5839:62:5"},"returnParameters":{"id":575,"nodeType":"ParameterList","parameters":[],"src":"5911:0:5"},"scope":779,"src":"5808:322:5","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":652,"nodeType":"Block","src":"6649:239:5","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":625,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":621,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":614,"src":"6663:2:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":622,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6666:4:5","memberName":"code","nodeType":"MemberAccess","src":"6663:7:5","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":623,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6671:6:5","memberName":"length","nodeType":"MemberAccess","src":"6663:14:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":624,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6681:1:5","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"6663:19:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"id":641,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"6759:49:5","subExpression":{"arguments":[{"id":636,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":612,"src":"6786:4:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":637,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":614,"src":"6792:2:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":638,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":616,"src":"6796:5:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":639,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":618,"src":"6803:4:5","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":{"id":634,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":610,"src":"6760:5:5","typeDescriptions":{"typeIdentifier":"t_contract$_IERC1363_$229","typeString":"contract IERC1363"}},"id":635,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6766:19:5","memberName":"transferFromAndCall","nodeType":"MemberAccess","referencedDeclaration":206,"src":"6760:25:5","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_bool_$","typeString":"function (address,address,uint256,bytes memory) external returns (bool)"}},"id":640,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6760:48:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":650,"nodeType":"IfStatement","src":"6755:127:5","trueBody":{"id":649,"nodeType":"Block","src":"6810:72:5","statements":[{"errorCall":{"arguments":[{"arguments":[{"id":645,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":610,"src":"6864:5:5","typeDescriptions":{"typeIdentifier":"t_contract$_IERC1363_$229","typeString":"contract IERC1363"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC1363_$229","typeString":"contract IERC1363"}],"id":644,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6856:7:5","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":643,"name":"address","nodeType":"ElementaryTypeName","src":"6856:7:5","typeDescriptions":{}}},"id":646,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6856:14:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":642,"name":"SafeERC20FailedOperation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":327,"src":"6831:24:5","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":647,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6831:40:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":648,"nodeType":"RevertStatement","src":"6824:47:5"}]}},"id":651,"nodeType":"IfStatement","src":"6659:223:5","trueBody":{"id":633,"nodeType":"Block","src":"6684:65:5","statements":[{"expression":{"arguments":[{"id":627,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":610,"src":"6715:5:5","typeDescriptions":{"typeIdentifier":"t_contract$_IERC1363_$229","typeString":"contract IERC1363"}},{"id":628,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":612,"src":"6722:4:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":629,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":614,"src":"6728:2:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":630,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":616,"src":"6732:5:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC1363_$229","typeString":"contract IERC1363"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":626,"name":"safeTransferFrom","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":387,"src":"6698:16:5","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_IERC20_$315_$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (contract IERC20,address,address,uint256)"}},"id":631,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6698:40:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":632,"nodeType":"ExpressionStatement","src":"6698:40:5"}]}}]},"documentation":{"id":607,"nodeType":"StructuredDocumentation","src":"6136:341:5","text":" @dev Performs an {ERC1363} transferFromAndCall, with a fallback to the simple {ERC20} transferFrom if the target\n has no code. This can be used to implement an {ERC721}-like safe transfer that rely on {ERC1363} checks when\n targeting contracts.\n Reverts if the returned value is other than `true`."},"id":653,"implemented":true,"kind":"function","modifiers":[],"name":"transferFromAndCallRelaxed","nameLocation":"6491:26:5","nodeType":"FunctionDefinition","parameters":{"id":619,"nodeType":"ParameterList","parameters":[{"constant":false,"id":610,"mutability":"mutable","name":"token","nameLocation":"6536:5:5","nodeType":"VariableDeclaration","scope":653,"src":"6527:14:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC1363_$229","typeString":"contract IERC1363"},"typeName":{"id":609,"nodeType":"UserDefinedTypeName","pathNode":{"id":608,"name":"IERC1363","nameLocations":["6527:8:5"],"nodeType":"IdentifierPath","referencedDeclaration":229,"src":"6527:8:5"},"referencedDeclaration":229,"src":"6527:8:5","typeDescriptions":{"typeIdentifier":"t_contract$_IERC1363_$229","typeString":"contract IERC1363"}},"visibility":"internal"},{"constant":false,"id":612,"mutability":"mutable","name":"from","nameLocation":"6559:4:5","nodeType":"VariableDeclaration","scope":653,"src":"6551:12:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":611,"name":"address","nodeType":"ElementaryTypeName","src":"6551:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":614,"mutability":"mutable","name":"to","nameLocation":"6581:2:5","nodeType":"VariableDeclaration","scope":653,"src":"6573:10:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":613,"name":"address","nodeType":"ElementaryTypeName","src":"6573:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":616,"mutability":"mutable","name":"value","nameLocation":"6601:5:5","nodeType":"VariableDeclaration","scope":653,"src":"6593:13:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":615,"name":"uint256","nodeType":"ElementaryTypeName","src":"6593:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":618,"mutability":"mutable","name":"data","nameLocation":"6629:4:5","nodeType":"VariableDeclaration","scope":653,"src":"6616:17:5","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":617,"name":"bytes","nodeType":"ElementaryTypeName","src":"6616:5:5","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"6517:122:5"},"returnParameters":{"id":620,"nodeType":"ParameterList","parameters":[],"src":"6649:0:5"},"scope":779,"src":"6482:406:5","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":695,"nodeType":"Block","src":"7655:218:5","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":670,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":666,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":659,"src":"7669:2:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":667,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7672:4:5","memberName":"code","nodeType":"MemberAccess","src":"7669:7:5","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":668,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7677:6:5","memberName":"length","nodeType":"MemberAccess","src":"7669:14:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":669,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7687:1:5","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"7669:19:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"id":684,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"7755:38:5","subExpression":{"arguments":[{"id":680,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":659,"src":"7777:2:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":681,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":661,"src":"7781:5:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":682,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":663,"src":"7788:4: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"}],"expression":{"id":678,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":657,"src":"7756:5:5","typeDescriptions":{"typeIdentifier":"t_contract$_IERC1363_$229","typeString":"contract IERC1363"}},"id":679,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7762:14:5","memberName":"approveAndCall","nodeType":"MemberAccess","referencedDeclaration":228,"src":"7756:20:5","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_bool_$","typeString":"function (address,uint256,bytes memory) external returns (bool)"}},"id":683,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7756:37:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":693,"nodeType":"IfStatement","src":"7751:116:5","trueBody":{"id":692,"nodeType":"Block","src":"7795:72:5","statements":[{"errorCall":{"arguments":[{"arguments":[{"id":688,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":657,"src":"7849:5:5","typeDescriptions":{"typeIdentifier":"t_contract$_IERC1363_$229","typeString":"contract IERC1363"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC1363_$229","typeString":"contract IERC1363"}],"id":687,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7841:7:5","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":686,"name":"address","nodeType":"ElementaryTypeName","src":"7841:7:5","typeDescriptions":{}}},"id":689,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7841:14:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":685,"name":"SafeERC20FailedOperation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":327,"src":"7816:24:5","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":690,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7816:40:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":691,"nodeType":"RevertStatement","src":"7809:47:5"}]}},"id":694,"nodeType":"IfStatement","src":"7665:202:5","trueBody":{"id":677,"nodeType":"Block","src":"7690:55:5","statements":[{"expression":{"arguments":[{"id":672,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":657,"src":"7717:5:5","typeDescriptions":{"typeIdentifier":"t_contract$_IERC1363_$229","typeString":"contract IERC1363"}},{"id":673,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":659,"src":"7724:2:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":674,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":661,"src":"7728:5:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC1363_$229","typeString":"contract IERC1363"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":671,"name":"forceApprove","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":563,"src":"7704:12:5","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_IERC20_$315_$_t_address_$_t_uint256_$returns$__$","typeString":"function (contract IERC20,address,uint256)"}},"id":675,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7704:30:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":676,"nodeType":"ExpressionStatement","src":"7704:30:5"}]}}]},"documentation":{"id":654,"nodeType":"StructuredDocumentation","src":"6894:654:5","text":" @dev Performs an {ERC1363} approveAndCall, with a fallback to the simple {ERC20} approve if the target has no\n code. This can be used to implement an {ERC721}-like safe transfer that rely on {ERC1363} checks when\n targeting contracts.\n NOTE: When the recipient address (`to`) has no code (i.e. is an EOA), this function behaves as {forceApprove}.\n Opposedly, when the recipient address (`to`) has code, this function only attempts to call {ERC1363-approveAndCall}\n once without retrying, and relies on the returned value to be true.\n Reverts if the returned value is other than `true`."},"id":696,"implemented":true,"kind":"function","modifiers":[],"name":"approveAndCallRelaxed","nameLocation":"7562:21:5","nodeType":"FunctionDefinition","parameters":{"id":664,"nodeType":"ParameterList","parameters":[{"constant":false,"id":657,"mutability":"mutable","name":"token","nameLocation":"7593:5:5","nodeType":"VariableDeclaration","scope":696,"src":"7584:14:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC1363_$229","typeString":"contract IERC1363"},"typeName":{"id":656,"nodeType":"UserDefinedTypeName","pathNode":{"id":655,"name":"IERC1363","nameLocations":["7584:8:5"],"nodeType":"IdentifierPath","referencedDeclaration":229,"src":"7584:8:5"},"referencedDeclaration":229,"src":"7584:8:5","typeDescriptions":{"typeIdentifier":"t_contract$_IERC1363_$229","typeString":"contract IERC1363"}},"visibility":"internal"},{"constant":false,"id":659,"mutability":"mutable","name":"to","nameLocation":"7608:2:5","nodeType":"VariableDeclaration","scope":696,"src":"7600:10:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":658,"name":"address","nodeType":"ElementaryTypeName","src":"7600:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":661,"mutability":"mutable","name":"value","nameLocation":"7620:5:5","nodeType":"VariableDeclaration","scope":696,"src":"7612:13:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":660,"name":"uint256","nodeType":"ElementaryTypeName","src":"7612:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":663,"mutability":"mutable","name":"data","nameLocation":"7640:4:5","nodeType":"VariableDeclaration","scope":696,"src":"7627:17:5","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":662,"name":"bytes","nodeType":"ElementaryTypeName","src":"7627:5:5","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"7583:62:5"},"returnParameters":{"id":665,"nodeType":"ParameterList","parameters":[],"src":"7655:0:5"},"scope":779,"src":"7553:320:5","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":736,"nodeType":"Block","src":"8440:650:5","statements":[{"assignments":[706],"declarations":[{"constant":false,"id":706,"mutability":"mutable","name":"returnSize","nameLocation":"8458:10:5","nodeType":"VariableDeclaration","scope":736,"src":"8450:18:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":705,"name":"uint256","nodeType":"ElementaryTypeName","src":"8450:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":707,"nodeType":"VariableDeclarationStatement","src":"8450:18:5"},{"assignments":[709],"declarations":[{"constant":false,"id":709,"mutability":"mutable","name":"returnValue","nameLocation":"8486:11:5","nodeType":"VariableDeclaration","scope":736,"src":"8478:19:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":708,"name":"uint256","nodeType":"ElementaryTypeName","src":"8478:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":710,"nodeType":"VariableDeclarationStatement","src":"8478:19:5"},{"AST":{"nodeType":"YulBlock","src":"8532:396:5","statements":[{"nodeType":"YulVariableDeclaration","src":"8546:75:5","value":{"arguments":[{"arguments":[],"functionName":{"name":"gas","nodeType":"YulIdentifier","src":"8566:3:5"},"nodeType":"YulFunctionCall","src":"8566:5:5"},{"name":"token","nodeType":"YulIdentifier","src":"8573:5:5"},{"kind":"number","nodeType":"YulLiteral","src":"8580:1:5","type":"","value":"0"},{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"8587:4:5"},{"kind":"number","nodeType":"YulLiteral","src":"8593:4:5","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8583:3:5"},"nodeType":"YulFunctionCall","src":"8583:15:5"},{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"8606:4:5"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"8600:5:5"},"nodeType":"YulFunctionCall","src":"8600:11:5"},{"kind":"number","nodeType":"YulLiteral","src":"8613:1:5","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"8616:4:5","type":"","value":"0x20"}],"functionName":{"name":"call","nodeType":"YulIdentifier","src":"8561:4:5"},"nodeType":"YulFunctionCall","src":"8561:60:5"},"variables":[{"name":"success","nodeType":"YulTypedName","src":"8550:7:5","type":""}]},{"body":{"nodeType":"YulBlock","src":"8682:157:5","statements":[{"nodeType":"YulVariableDeclaration","src":"8700:22:5","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"8717:4:5","type":"","value":"0x40"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"8711:5:5"},"nodeType":"YulFunctionCall","src":"8711:11:5"},"variables":[{"name":"ptr","nodeType":"YulTypedName","src":"8704:3:5","type":""}]},{"expression":{"arguments":[{"name":"ptr","nodeType":"YulIdentifier","src":"8754:3:5"},{"kind":"number","nodeType":"YulLiteral","src":"8759:1:5","type":"","value":"0"},{"arguments":[],"functionName":{"name":"returndatasize","nodeType":"YulIdentifier","src":"8762:14:5"},"nodeType":"YulFunctionCall","src":"8762:16:5"}],"functionName":{"name":"returndatacopy","nodeType":"YulIdentifier","src":"8739:14:5"},"nodeType":"YulFunctionCall","src":"8739:40:5"},"nodeType":"YulExpressionStatement","src":"8739:40:5"},{"expression":{"arguments":[{"name":"ptr","nodeType":"YulIdentifier","src":"8803:3:5"},{"arguments":[],"functionName":{"name":"returndatasize","nodeType":"YulIdentifier","src":"8808:14:5"},"nodeType":"YulFunctionCall","src":"8808:16:5"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"8796:6:5"},"nodeType":"YulFunctionCall","src":"8796:29:5"},"nodeType":"YulExpressionStatement","src":"8796:29:5"}]},"condition":{"arguments":[{"name":"success","nodeType":"YulIdentifier","src":"8673:7:5"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"8666:6:5"},"nodeType":"YulFunctionCall","src":"8666:15:5"},"nodeType":"YulIf","src":"8663:176:5"},{"nodeType":"YulAssignment","src":"8852:30:5","value":{"arguments":[],"functionName":{"name":"returndatasize","nodeType":"YulIdentifier","src":"8866:14:5"},"nodeType":"YulFunctionCall","src":"8866:16:5"},"variableNames":[{"name":"returnSize","nodeType":"YulIdentifier","src":"8852:10:5"}]},{"nodeType":"YulAssignment","src":"8895:23:5","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"8916:1:5","type":"","value":"0"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"8910:5:5"},"nodeType":"YulFunctionCall","src":"8910:8:5"},"variableNames":[{"name":"returnValue","nodeType":"YulIdentifier","src":"8895:11:5"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":702,"isOffset":false,"isSlot":false,"src":"8587:4:5","valueSize":1},{"declaration":702,"isOffset":false,"isSlot":false,"src":"8606:4:5","valueSize":1},{"declaration":706,"isOffset":false,"isSlot":false,"src":"8852:10:5","valueSize":1},{"declaration":709,"isOffset":false,"isSlot":false,"src":"8895:11:5","valueSize":1},{"declaration":700,"isOffset":false,"isSlot":false,"src":"8573:5:5","valueSize":1}],"flags":["memory-safe"],"id":711,"nodeType":"InlineAssembly","src":"8507:421:5"},{"condition":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":714,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":712,"name":"returnSize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":706,"src":"8942:10:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":713,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8956:1:5","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"8942:15:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":725,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":723,"name":"returnValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":709,"src":"8994:11:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"31","id":724,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9009:1:5","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"8994:16:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":726,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"8942:68:5","trueExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":722,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"arguments":[{"id":717,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":700,"src":"8968:5:5","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$315","typeString":"contract IERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$315","typeString":"contract IERC20"}],"id":716,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8960:7:5","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":715,"name":"address","nodeType":"ElementaryTypeName","src":"8960:7:5","typeDescriptions":{}}},"id":718,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8960:14:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":719,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8975:4:5","memberName":"code","nodeType":"MemberAccess","src":"8960:19:5","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":720,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8980:6:5","memberName":"length","nodeType":"MemberAccess","src":"8960:26:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":721,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8990:1:5","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"8960:31:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":735,"nodeType":"IfStatement","src":"8938:146:5","trueBody":{"id":734,"nodeType":"Block","src":"9012:72:5","statements":[{"errorCall":{"arguments":[{"arguments":[{"id":730,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":700,"src":"9066:5:5","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$315","typeString":"contract IERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$315","typeString":"contract IERC20"}],"id":729,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9058:7:5","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":728,"name":"address","nodeType":"ElementaryTypeName","src":"9058:7:5","typeDescriptions":{}}},"id":731,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9058:14:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":727,"name":"SafeERC20FailedOperation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":327,"src":"9033:24:5","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":732,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9033:40:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":733,"nodeType":"RevertStatement","src":"9026:47:5"}]}}]},"documentation":{"id":697,"nodeType":"StructuredDocumentation","src":"7879:486:5","text":" @dev Imitates a Solidity high-level call (i.e. a regular function call to a contract), relaxing the requirement\n on the return value: the return value is optional (but if data is returned, it must not be false).\n @param token The token targeted by the call.\n @param data The call data (encoded using abi.encode or one of its variants).\n This is a variant of {_callOptionalReturnBool} that reverts if call fails to meet the requirements."},"id":737,"implemented":true,"kind":"function","modifiers":[],"name":"_callOptionalReturn","nameLocation":"8379:19:5","nodeType":"FunctionDefinition","parameters":{"id":703,"nodeType":"ParameterList","parameters":[{"constant":false,"id":700,"mutability":"mutable","name":"token","nameLocation":"8406:5:5","nodeType":"VariableDeclaration","scope":737,"src":"8399:12:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$315","typeString":"contract IERC20"},"typeName":{"id":699,"nodeType":"UserDefinedTypeName","pathNode":{"id":698,"name":"IERC20","nameLocations":["8399:6:5"],"nodeType":"IdentifierPath","referencedDeclaration":315,"src":"8399:6:5"},"referencedDeclaration":315,"src":"8399:6:5","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$315","typeString":"contract IERC20"}},"visibility":"internal"},{"constant":false,"id":702,"mutability":"mutable","name":"data","nameLocation":"8426:4:5","nodeType":"VariableDeclaration","scope":737,"src":"8413:17:5","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":701,"name":"bytes","nodeType":"ElementaryTypeName","src":"8413:5:5","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"8398:33:5"},"returnParameters":{"id":704,"nodeType":"ParameterList","parameters":[],"src":"8440:0:5"},"scope":779,"src":"8370:720:5","stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"body":{"id":777,"nodeType":"Block","src":"9681:391:5","statements":[{"assignments":[749],"declarations":[{"constant":false,"id":749,"mutability":"mutable","name":"success","nameLocation":"9696:7:5","nodeType":"VariableDeclaration","scope":777,"src":"9691:12:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":748,"name":"bool","nodeType":"ElementaryTypeName","src":"9691:4:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":750,"nodeType":"VariableDeclarationStatement","src":"9691:12:5"},{"assignments":[752],"declarations":[{"constant":false,"id":752,"mutability":"mutable","name":"returnSize","nameLocation":"9721:10:5","nodeType":"VariableDeclaration","scope":777,"src":"9713:18:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":751,"name":"uint256","nodeType":"ElementaryTypeName","src":"9713:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":753,"nodeType":"VariableDeclarationStatement","src":"9713:18:5"},{"assignments":[755],"declarations":[{"constant":false,"id":755,"mutability":"mutable","name":"returnValue","nameLocation":"9749:11:5","nodeType":"VariableDeclaration","scope":777,"src":"9741:19:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":754,"name":"uint256","nodeType":"ElementaryTypeName","src":"9741:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":756,"nodeType":"VariableDeclarationStatement","src":"9741:19:5"},{"AST":{"nodeType":"YulBlock","src":"9795:174:5","statements":[{"nodeType":"YulAssignment","src":"9809:71:5","value":{"arguments":[{"arguments":[],"functionName":{"name":"gas","nodeType":"YulIdentifier","src":"9825:3:5"},"nodeType":"YulFunctionCall","src":"9825:5:5"},{"name":"token","nodeType":"YulIdentifier","src":"9832:5:5"},{"kind":"number","nodeType":"YulLiteral","src":"9839:1:5","type":"","value":"0"},{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"9846:4:5"},{"kind":"number","nodeType":"YulLiteral","src":"9852:4:5","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9842:3:5"},"nodeType":"YulFunctionCall","src":"9842:15:5"},{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"9865:4:5"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"9859:5:5"},"nodeType":"YulFunctionCall","src":"9859:11:5"},{"kind":"number","nodeType":"YulLiteral","src":"9872:1:5","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"9875:4:5","type":"","value":"0x20"}],"functionName":{"name":"call","nodeType":"YulIdentifier","src":"9820:4:5"},"nodeType":"YulFunctionCall","src":"9820:60:5"},"variableNames":[{"name":"success","nodeType":"YulIdentifier","src":"9809:7:5"}]},{"nodeType":"YulAssignment","src":"9893:30:5","value":{"arguments":[],"functionName":{"name":"returndatasize","nodeType":"YulIdentifier","src":"9907:14:5"},"nodeType":"YulFunctionCall","src":"9907:16:5"},"variableNames":[{"name":"returnSize","nodeType":"YulIdentifier","src":"9893:10:5"}]},{"nodeType":"YulAssignment","src":"9936:23:5","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9957:1:5","type":"","value":"0"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"9951:5:5"},"nodeType":"YulFunctionCall","src":"9951:8:5"},"variableNames":[{"name":"returnValue","nodeType":"YulIdentifier","src":"9936:11:5"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":743,"isOffset":false,"isSlot":false,"src":"9846:4:5","valueSize":1},{"declaration":743,"isOffset":false,"isSlot":false,"src":"9865:4:5","valueSize":1},{"declaration":752,"isOffset":false,"isSlot":false,"src":"9893:10:5","valueSize":1},{"declaration":755,"isOffset":false,"isSlot":false,"src":"9936:11:5","valueSize":1},{"declaration":749,"isOffset":false,"isSlot":false,"src":"9809:7:5","valueSize":1},{"declaration":741,"isOffset":false,"isSlot":false,"src":"9832:5:5","valueSize":1}],"flags":["memory-safe"],"id":757,"nodeType":"InlineAssembly","src":"9770:199:5"},{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":775,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":758,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":749,"src":"9985:7:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"components":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":761,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":759,"name":"returnSize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":752,"src":"9997:10:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":760,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10011:1:5","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"9997:15:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":772,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":770,"name":"returnValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":755,"src":"10048:11:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"31","id":771,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10063:1:5","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"10048:16:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":773,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"9997:67:5","trueExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":769,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"arguments":[{"id":764,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":741,"src":"10023:5:5","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$315","typeString":"contract IERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$315","typeString":"contract IERC20"}],"id":763,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10015:7:5","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":762,"name":"address","nodeType":"ElementaryTypeName","src":"10015:7:5","typeDescriptions":{}}},"id":765,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10015:14:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":766,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10030:4:5","memberName":"code","nodeType":"MemberAccess","src":"10015:19:5","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":767,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10035:6:5","memberName":"length","nodeType":"MemberAccess","src":"10015:26:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":768,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10044:1:5","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"10015:30:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":774,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"9996:69:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"9985:80:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":747,"id":776,"nodeType":"Return","src":"9978:87:5"}]},"documentation":{"id":738,"nodeType":"StructuredDocumentation","src":"9096:491:5","text":" @dev Imitates a Solidity high-level call (i.e. a regular function call to a contract), relaxing the requirement\n on the return value: the return value is optional (but if data is returned, it must not be false).\n @param token The token targeted by the call.\n @param data The call data (encoded using abi.encode or one of its variants).\n This is a variant of {_callOptionalReturn} that silently catches all reverts and returns a bool instead."},"id":778,"implemented":true,"kind":"function","modifiers":[],"name":"_callOptionalReturnBool","nameLocation":"9601:23:5","nodeType":"FunctionDefinition","parameters":{"id":744,"nodeType":"ParameterList","parameters":[{"constant":false,"id":741,"mutability":"mutable","name":"token","nameLocation":"9632:5:5","nodeType":"VariableDeclaration","scope":778,"src":"9625:12:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$315","typeString":"contract IERC20"},"typeName":{"id":740,"nodeType":"UserDefinedTypeName","pathNode":{"id":739,"name":"IERC20","nameLocations":["9625:6:5"],"nodeType":"IdentifierPath","referencedDeclaration":315,"src":"9625:6:5"},"referencedDeclaration":315,"src":"9625:6:5","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$315","typeString":"contract IERC20"}},"visibility":"internal"},{"constant":false,"id":743,"mutability":"mutable","name":"data","nameLocation":"9652:4:5","nodeType":"VariableDeclaration","scope":778,"src":"9639:17:5","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":742,"name":"bytes","nodeType":"ElementaryTypeName","src":"9639:5:5","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"9624:33:5"},"returnParameters":{"id":747,"nodeType":"ParameterList","parameters":[{"constant":false,"id":746,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":778,"src":"9675:4:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":745,"name":"bool","nodeType":"ElementaryTypeName","src":"9675:4:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"9674:6:5"},"scope":779,"src":"9592:480:5","stateMutability":"nonpayable","virtual":false,"visibility":"private"}],"scope":780,"src":"698:9376:5","usedErrors":[327,336],"usedEvents":[]}],"src":"115:9960:5"},"id":5},"@openzeppelin/contracts/utils/Context.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/utils/Context.sol","exportedSymbols":{"Context":[809]},"id":810,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":781,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"101:24:6"},{"abstract":true,"baseContracts":[],"canonicalName":"Context","contractDependencies":[],"contractKind":"contract","documentation":{"id":782,"nodeType":"StructuredDocumentation","src":"127:496:6","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":809,"linearizedBaseContracts":[809],"name":"Context","nameLocation":"642:7:6","nodeType":"ContractDefinition","nodes":[{"body":{"id":790,"nodeType":"Block","src":"718:34:6","statements":[{"expression":{"expression":{"id":787,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"735:3:6","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":788,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"739:6:6","memberName":"sender","nodeType":"MemberAccess","src":"735:10:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":786,"id":789,"nodeType":"Return","src":"728:17:6"}]},"id":791,"implemented":true,"kind":"function","modifiers":[],"name":"_msgSender","nameLocation":"665:10:6","nodeType":"FunctionDefinition","parameters":{"id":783,"nodeType":"ParameterList","parameters":[],"src":"675:2:6"},"returnParameters":{"id":786,"nodeType":"ParameterList","parameters":[{"constant":false,"id":785,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":791,"src":"709:7:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":784,"name":"address","nodeType":"ElementaryTypeName","src":"709:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"708:9:6"},"scope":809,"src":"656:96:6","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":799,"nodeType":"Block","src":"825:32:6","statements":[{"expression":{"expression":{"id":796,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"842:3:6","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":797,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"846:4:6","memberName":"data","nodeType":"MemberAccess","src":"842:8:6","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"functionReturnParameters":795,"id":798,"nodeType":"Return","src":"835:15:6"}]},"id":800,"implemented":true,"kind":"function","modifiers":[],"name":"_msgData","nameLocation":"767:8:6","nodeType":"FunctionDefinition","parameters":{"id":792,"nodeType":"ParameterList","parameters":[],"src":"775:2:6"},"returnParameters":{"id":795,"nodeType":"ParameterList","parameters":[{"constant":false,"id":794,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":800,"src":"809:14:6","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":793,"name":"bytes","nodeType":"ElementaryTypeName","src":"809:5:6","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"808:16:6"},"scope":809,"src":"758:99:6","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":807,"nodeType":"Block","src":"935:25:6","statements":[{"expression":{"hexValue":"30","id":805,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"952:1:6","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"functionReturnParameters":804,"id":806,"nodeType":"Return","src":"945:8:6"}]},"id":808,"implemented":true,"kind":"function","modifiers":[],"name":"_contextSuffixLength","nameLocation":"872:20:6","nodeType":"FunctionDefinition","parameters":{"id":801,"nodeType":"ParameterList","parameters":[],"src":"892:2:6"},"returnParameters":{"id":804,"nodeType":"ParameterList","parameters":[{"constant":false,"id":803,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":808,"src":"926:7:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":802,"name":"uint256","nodeType":"ElementaryTypeName","src":"926:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"925:9:6"},"scope":809,"src":"863:97:6","stateMutability":"view","virtual":true,"visibility":"internal"}],"scope":810,"src":"624:338:6","usedErrors":[],"usedEvents":[]}],"src":"101:862:6"},"id":6},"@openzeppelin/contracts/utils/ReentrancyGuard.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/utils/ReentrancyGuard.sol","exportedSymbols":{"ReentrancyGuard":[878]},"id":879,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":811,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"109:24:7"},{"abstract":true,"baseContracts":[],"canonicalName":"ReentrancyGuard","contractDependencies":[],"contractKind":"contract","documentation":{"id":812,"nodeType":"StructuredDocumentation","src":"135:894:7","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 EIP-1153 (transient storage) is available on the chain you're deploying at,\n consider using {ReentrancyGuardTransient} instead.\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":878,"linearizedBaseContracts":[878],"name":"ReentrancyGuard","nameLocation":"1048:15:7","nodeType":"ContractDefinition","nodes":[{"constant":true,"id":815,"mutability":"constant","name":"NOT_ENTERED","nameLocation":"1843:11:7","nodeType":"VariableDeclaration","scope":878,"src":"1818:40:7","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":813,"name":"uint256","nodeType":"ElementaryTypeName","src":"1818:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"31","id":814,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1857:1:7","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"visibility":"private"},{"constant":true,"id":818,"mutability":"constant","name":"ENTERED","nameLocation":"1889:7:7","nodeType":"VariableDeclaration","scope":878,"src":"1864:36:7","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":816,"name":"uint256","nodeType":"ElementaryTypeName","src":"1864:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"32","id":817,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1899:1:7","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"visibility":"private"},{"constant":false,"id":820,"mutability":"mutable","name":"_status","nameLocation":"1923:7:7","nodeType":"VariableDeclaration","scope":878,"src":"1907:23:7","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":819,"name":"uint256","nodeType":"ElementaryTypeName","src":"1907:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"private"},{"documentation":{"id":821,"nodeType":"StructuredDocumentation","src":"1937:52:7","text":" @dev Unauthorized reentrant call."},"errorSelector":"3ee5aeb5","id":823,"name":"ReentrancyGuardReentrantCall","nameLocation":"2000:28:7","nodeType":"ErrorDefinition","parameters":{"id":822,"nodeType":"ParameterList","parameters":[],"src":"2028:2:7"},"src":"1994:37:7"},{"body":{"id":830,"nodeType":"Block","src":"2051:38:7","statements":[{"expression":{"id":828,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":826,"name":"_status","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":820,"src":"2061:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":827,"name":"NOT_ENTERED","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":815,"src":"2071:11:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2061:21:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":829,"nodeType":"ExpressionStatement","src":"2061:21:7"}]},"id":831,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":824,"nodeType":"ParameterList","parameters":[],"src":"2048:2:7"},"returnParameters":{"id":825,"nodeType":"ParameterList","parameters":[],"src":"2051:0:7"},"scope":878,"src":"2037:52:7","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":841,"nodeType":"Block","src":"2490:79:7","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":834,"name":"_nonReentrantBefore","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":858,"src":"2500:19:7","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":835,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2500:21:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":836,"nodeType":"ExpressionStatement","src":"2500:21:7"},{"id":837,"nodeType":"PlaceholderStatement","src":"2531:1:7"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":838,"name":"_nonReentrantAfter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":866,"src":"2542:18:7","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":839,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2542:20:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":840,"nodeType":"ExpressionStatement","src":"2542:20:7"}]},"documentation":{"id":832,"nodeType":"StructuredDocumentation","src":"2095:366:7","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":842,"name":"nonReentrant","nameLocation":"2475:12:7","nodeType":"ModifierDefinition","parameters":{"id":833,"nodeType":"ParameterList","parameters":[],"src":"2487:2:7"},"src":"2466:103:7","virtual":false,"visibility":"internal"},{"body":{"id":857,"nodeType":"Block","src":"2614:268:7","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":847,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":845,"name":"_status","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":820,"src":"2702:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":846,"name":"ENTERED","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":818,"src":"2713:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2702:18:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":852,"nodeType":"IfStatement","src":"2698:86:7","trueBody":{"id":851,"nodeType":"Block","src":"2722:62:7","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":848,"name":"ReentrancyGuardReentrantCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":823,"src":"2743:28:7","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":849,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2743:30:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":850,"nodeType":"RevertStatement","src":"2736:37:7"}]}},{"expression":{"id":855,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":853,"name":"_status","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":820,"src":"2858:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":854,"name":"ENTERED","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":818,"src":"2868:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2858:17:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":856,"nodeType":"ExpressionStatement","src":"2858:17:7"}]},"id":858,"implemented":true,"kind":"function","modifiers":[],"name":"_nonReentrantBefore","nameLocation":"2584:19:7","nodeType":"FunctionDefinition","parameters":{"id":843,"nodeType":"ParameterList","parameters":[],"src":"2603:2:7"},"returnParameters":{"id":844,"nodeType":"ParameterList","parameters":[],"src":"2614:0:7"},"scope":878,"src":"2575:307:7","stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"body":{"id":865,"nodeType":"Block","src":"2926:170:7","statements":[{"expression":{"id":863,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":861,"name":"_status","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":820,"src":"3068:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":862,"name":"NOT_ENTERED","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":815,"src":"3078:11:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3068:21:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":864,"nodeType":"ExpressionStatement","src":"3068:21:7"}]},"id":866,"implemented":true,"kind":"function","modifiers":[],"name":"_nonReentrantAfter","nameLocation":"2897:18:7","nodeType":"FunctionDefinition","parameters":{"id":859,"nodeType":"ParameterList","parameters":[],"src":"2915:2:7"},"returnParameters":{"id":860,"nodeType":"ParameterList","parameters":[],"src":"2926:0:7"},"scope":878,"src":"2888:208:7","stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"body":{"id":876,"nodeType":"Block","src":"3339:42:7","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":874,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":872,"name":"_status","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":820,"src":"3356:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":873,"name":"ENTERED","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":818,"src":"3367:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3356:18:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":871,"id":875,"nodeType":"Return","src":"3349:25:7"}]},"documentation":{"id":867,"nodeType":"StructuredDocumentation","src":"3102:168:7","text":" @dev Returns true if the reentrancy guard is currently set to \"entered\", which indicates there is a\n `nonReentrant` function in the call stack."},"id":877,"implemented":true,"kind":"function","modifiers":[],"name":"_reentrancyGuardEntered","nameLocation":"3284:23:7","nodeType":"FunctionDefinition","parameters":{"id":868,"nodeType":"ParameterList","parameters":[],"src":"3307:2:7"},"returnParameters":{"id":871,"nodeType":"ParameterList","parameters":[{"constant":false,"id":870,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":877,"src":"3333:4:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":869,"name":"bool","nodeType":"ElementaryTypeName","src":"3333:4:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"3332:6:7"},"scope":878,"src":"3275:106:7","stateMutability":"view","virtual":false,"visibility":"internal"}],"scope":879,"src":"1030:2353:7","usedErrors":[823],"usedEvents":[]}],"src":"109:3275:7"},"id":7},"@openzeppelin/contracts/utils/introspection/IERC165.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/utils/introspection/IERC165.sol","exportedSymbols":{"IERC165":[890]},"id":891,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":880,"literals":["solidity",">=","0.4",".16"],"nodeType":"PragmaDirective","src":"115:25:8"},{"abstract":false,"baseContracts":[],"canonicalName":"IERC165","contractDependencies":[],"contractKind":"interface","documentation":{"id":881,"nodeType":"StructuredDocumentation","src":"142:280:8","text":" @dev Interface of the ERC-165 standard, as defined in the\n https://eips.ethereum.org/EIPS/eip-165[ERC].\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":890,"linearizedBaseContracts":[890],"name":"IERC165","nameLocation":"433:7:8","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":882,"nodeType":"StructuredDocumentation","src":"447:340:8","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[ERC 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":889,"implemented":false,"kind":"function","modifiers":[],"name":"supportsInterface","nameLocation":"801:17:8","nodeType":"FunctionDefinition","parameters":{"id":885,"nodeType":"ParameterList","parameters":[{"constant":false,"id":884,"mutability":"mutable","name":"interfaceId","nameLocation":"826:11:8","nodeType":"VariableDeclaration","scope":889,"src":"819:18:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":883,"name":"bytes4","nodeType":"ElementaryTypeName","src":"819:6:8","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"818:20:8"},"returnParameters":{"id":888,"nodeType":"ParameterList","parameters":[{"constant":false,"id":887,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":889,"src":"862:4:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":886,"name":"bool","nodeType":"ElementaryTypeName","src":"862:4:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"861:6:8"},"scope":890,"src":"792:76:8","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":891,"src":"423:447:8","usedErrors":[],"usedEvents":[]}],"src":"115:756:8"},"id":8},"contracts/BatchTransfer.sol":{"ast":{"absolutePath":"contracts/BatchTransfer.sol","exportedSymbols":{"BatchTransfer":[1248],"IERC1363":[229],"IERC20":[315],"ReentrancyGuard":[878],"SafeERC20":[779]},"id":1249,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":892,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"33:24:9"},{"absolutePath":"@openzeppelin/contracts/token/ERC20/IERC20.sol","file":"@openzeppelin/contracts/token/ERC20/IERC20.sol","id":893,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":1249,"sourceUnit":316,"src":"61:56:9","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol","file":"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol","id":894,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":1249,"sourceUnit":780,"src":"119:65:9","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/ReentrancyGuard.sol","file":"@openzeppelin/contracts/utils/ReentrancyGuard.sol","id":895,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":1249,"sourceUnit":879,"src":"186:59:9","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":897,"name":"ReentrancyGuard","nameLocations":["496:15:9"],"nodeType":"IdentifierPath","referencedDeclaration":878,"src":"496:15:9"},"id":898,"nodeType":"InheritanceSpecifier","src":"496:15:9"}],"canonicalName":"BatchTransfer","contractDependencies":[],"contractKind":"contract","documentation":{"id":896,"nodeType":"StructuredDocumentation","src":"249:219:9","text":" @title BatchTransfer\n @notice A contract to batch transfer multiple ERC20 tokens in a single transaction\n @dev This contract uses SafeERC20 for safe token transfers and is protected against reentrancy"},"fullyImplemented":true,"id":1248,"linearizedBaseContracts":[1248,878],"name":"BatchTransfer","nameLocation":"479:13:9","nodeType":"ContractDefinition","nodes":[{"global":false,"id":902,"libraryName":{"id":899,"name":"SafeERC20","nameLocations":["525:9:9"],"nodeType":"IdentifierPath","referencedDeclaration":779,"src":"525:9:9"},"nodeType":"UsingForDirective","src":"519:27:9","typeName":{"id":901,"nodeType":"UserDefinedTypeName","pathNode":{"id":900,"name":"IERC20","nameLocations":["539:6:9"],"nodeType":"IdentifierPath","referencedDeclaration":315,"src":"539:6:9"},"referencedDeclaration":315,"src":"539:6:9","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$315","typeString":"contract IERC20"}}},{"anonymous":false,"eventSelector":"9af266b6ca4909f988dc948fb50ad15153abbe525351881bad4fa858be96515c","id":912,"name":"TokenTransferred","nameLocation":"575:16:9","nodeType":"EventDefinition","parameters":{"id":911,"nodeType":"ParameterList","parameters":[{"constant":false,"id":904,"indexed":true,"mutability":"mutable","name":"token","nameLocation":"618:5:9","nodeType":"VariableDeclaration","scope":912,"src":"602:21:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":903,"name":"address","nodeType":"ElementaryTypeName","src":"602:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":906,"indexed":true,"mutability":"mutable","name":"from","nameLocation":"650:4:9","nodeType":"VariableDeclaration","scope":912,"src":"634:20:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":905,"name":"address","nodeType":"ElementaryTypeName","src":"634:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":908,"indexed":true,"mutability":"mutable","name":"to","nameLocation":"681:2:9","nodeType":"VariableDeclaration","scope":912,"src":"665:18:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":907,"name":"address","nodeType":"ElementaryTypeName","src":"665:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":910,"indexed":false,"mutability":"mutable","name":"amount","nameLocation":"702:6:9","nodeType":"VariableDeclaration","scope":912,"src":"694:14:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":909,"name":"uint256","nodeType":"ElementaryTypeName","src":"694:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"591:124:9"},"src":"569:147:9"},{"anonymous":false,"eventSelector":"ee33b49c2685af4719e7e52028345a4147b8df3070f604eed24da16954c07e1a","id":920,"name":"BatchTransferCompleted","nameLocation":"730:22:9","nodeType":"EventDefinition","parameters":{"id":919,"nodeType":"ParameterList","parameters":[{"constant":false,"id":914,"indexed":true,"mutability":"mutable","name":"from","nameLocation":"779:4:9","nodeType":"VariableDeclaration","scope":920,"src":"763:20:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":913,"name":"address","nodeType":"ElementaryTypeName","src":"763:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":916,"indexed":true,"mutability":"mutable","name":"to","nameLocation":"810:2:9","nodeType":"VariableDeclaration","scope":920,"src":"794:18:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":915,"name":"address","nodeType":"ElementaryTypeName","src":"794:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":918,"indexed":false,"mutability":"mutable","name":"tokenCount","nameLocation":"831:10:9","nodeType":"VariableDeclaration","scope":920,"src":"823:18:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":917,"name":"uint256","nodeType":"ElementaryTypeName","src":"823:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"752:96:9"},"src":"724:125:9"},{"body":{"id":1050,"nodeType":"Block","src":"1425:862:9","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":941,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":937,"name":"tokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":924,"src":"1444:6:9","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":938,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1451:6:9","memberName":"length","nodeType":"MemberAccess","src":"1444:13:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":939,"name":"amounts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":931,"src":"1461:7:9","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[] calldata"}},"id":940,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1469:6:9","memberName":"length","nodeType":"MemberAccess","src":"1461:14:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1444:31:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"417272617973206c656e677468206d69736d61746368","id":942,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1477:24:9","typeDescriptions":{"typeIdentifier":"t_stringliteral_582fd48f3876d7686bfeaaaa0db0589073271dedd50d66094f02fee2a3d2e01c","typeString":"literal_string \"Arrays length mismatch\""},"value":"Arrays length mismatch"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_582fd48f3876d7686bfeaaaa0db0589073271dedd50d66094f02fee2a3d2e01c","typeString":"literal_string \"Arrays length mismatch\""}],"id":936,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1436:7:9","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":943,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1436:66:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":944,"nodeType":"ExpressionStatement","src":"1436:66:9"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":949,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":946,"name":"tokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":924,"src":"1521:6:9","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":947,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1528:6:9","memberName":"length","nodeType":"MemberAccess","src":"1521:13:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":948,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1537:1:9","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1521:17:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"456d70747920617272617973","id":950,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1540:14:9","typeDescriptions":{"typeIdentifier":"t_stringliteral_920fc87d8e9a45232b5e4c2c36e3c0fff5f09b5434a80d6ec35d7f09f9d69c29","typeString":"literal_string \"Empty arrays\""},"value":"Empty arrays"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_920fc87d8e9a45232b5e4c2c36e3c0fff5f09b5434a80d6ec35d7f09f9d69c29","typeString":"literal_string \"Empty arrays\""}],"id":945,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1513:7:9","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":951,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1513:42:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":952,"nodeType":"ExpressionStatement","src":"1513:42:9"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":959,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":954,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":928,"src":"1574:2:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":957,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1588:1:9","typeDescriptions":{"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":956,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1580:7:9","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":955,"name":"address","nodeType":"ElementaryTypeName","src":"1580:7:9","typeDescriptions":{}}},"id":958,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1580:10:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1574:16:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"496e76616c69642064657374696e6174696f6e","id":960,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1592:21:9","typeDescriptions":{"typeIdentifier":"t_stringliteral_480a3d2cf1e4838d740f40eac57f23eb6facc0baaf1a65a7b61df6a5a00ed368","typeString":"literal_string \"Invalid destination\""},"value":"Invalid destination"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_480a3d2cf1e4838d740f40eac57f23eb6facc0baaf1a65a7b61df6a5a00ed368","typeString":"literal_string \"Invalid destination\""}],"id":953,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1566:7:9","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":961,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1566:48:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":962,"nodeType":"ExpressionStatement","src":"1566:48:9"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":969,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":964,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":926,"src":"1633:4:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":967,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1649:1:9","typeDescriptions":{"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":966,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1641:7:9","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":965,"name":"address","nodeType":"ElementaryTypeName","src":"1641:7:9","typeDescriptions":{}}},"id":968,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1641:10:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1633:18:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"496e76616c696420736f75726365","id":970,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1653:16:9","typeDescriptions":{"typeIdentifier":"t_stringliteral_3191da89117a1b0027f3623a186706fe04c82acd10c13dd219b922faa6967c0e","typeString":"literal_string \"Invalid source\""},"value":"Invalid source"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_3191da89117a1b0027f3623a186706fe04c82acd10c13dd219b922faa6967c0e","typeString":"literal_string \"Invalid source\""}],"id":963,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1625:7:9","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":971,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1625:45:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":972,"nodeType":"ExpressionStatement","src":"1625:45:9"},{"body":{"id":1041,"nodeType":"Block","src":"1727:488:9","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":988,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":984,"name":"amounts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":931,"src":"1746:7:9","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[] calldata"}},"id":986,"indexExpression":{"id":985,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":974,"src":"1754:1:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1746:10:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":987,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1759:1:9","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1746:14:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1040,"nodeType":"IfStatement","src":"1742:462:9","trueBody":{"id":1039,"nodeType":"Block","src":"1762:442:9","statements":[{"assignments":[991],"declarations":[{"constant":false,"id":991,"mutability":"mutable","name":"token","nameLocation":"1788:5:9","nodeType":"VariableDeclaration","scope":1039,"src":"1781:12:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$315","typeString":"contract IERC20"},"typeName":{"id":990,"nodeType":"UserDefinedTypeName","pathNode":{"id":989,"name":"IERC20","nameLocations":["1781:6:9"],"nodeType":"IdentifierPath","referencedDeclaration":315,"src":"1781:6:9"},"referencedDeclaration":315,"src":"1781:6:9","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$315","typeString":"contract IERC20"}},"visibility":"internal"}],"id":997,"initialValue":{"arguments":[{"baseExpression":{"id":993,"name":"tokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":924,"src":"1803:6:9","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":995,"indexExpression":{"id":994,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":974,"src":"1810:1:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1803:9:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":992,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":315,"src":"1796:6:9","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC20_$315_$","typeString":"type(contract IERC20)"}},"id":996,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1796:17:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$315","typeString":"contract IERC20"}},"nodeType":"VariableDeclarationStatement","src":"1781:32:9"},{"assignments":[999],"declarations":[{"constant":false,"id":999,"mutability":"mutable","name":"allowance","nameLocation":"1894:9:9","nodeType":"VariableDeclaration","scope":1039,"src":"1886:17:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":998,"name":"uint256","nodeType":"ElementaryTypeName","src":"1886:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1008,"initialValue":{"arguments":[{"id":1002,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":926,"src":"1922:4:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":1005,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"1936:4:9","typeDescriptions":{"typeIdentifier":"t_contract$_BatchTransfer_$1248","typeString":"contract BatchTransfer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_BatchTransfer_$1248","typeString":"contract BatchTransfer"}],"id":1004,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1928:7:9","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1003,"name":"address","nodeType":"ElementaryTypeName","src":"1928:7:9","typeDescriptions":{}}},"id":1006,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1928:13:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":1000,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":991,"src":"1906:5:9","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$315","typeString":"contract IERC20"}},"id":1001,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1912:9:9","memberName":"allowance","nodeType":"MemberAccess","referencedDeclaration":292,"src":"1906:15:9","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$","typeString":"function (address,address) view external returns (uint256)"}},"id":1007,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1906:36:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"1886:56:9"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1014,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1010,"name":"allowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":999,"src":"1969:9:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"baseExpression":{"id":1011,"name":"amounts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":931,"src":"1982:7:9","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[] calldata"}},"id":1013,"indexExpression":{"id":1012,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":974,"src":"1990:1:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1982:10:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1969:23:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"496e73756666696369656e7420616c6c6f77616e6365","id":1015,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1994:24:9","typeDescriptions":{"typeIdentifier":"t_stringliteral_45e3d26e36c3151c7f92a1eee9add9658cbb8e14605ee2452ec007389b9744bc","typeString":"literal_string \"Insufficient allowance\""},"value":"Insufficient allowance"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_45e3d26e36c3151c7f92a1eee9add9658cbb8e14605ee2452ec007389b9744bc","typeString":"literal_string \"Insufficient allowance\""}],"id":1009,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1961:7:9","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":1016,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1961:58:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1017,"nodeType":"ExpressionStatement","src":"1961:58:9"},{"expression":{"arguments":[{"id":1021,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":926,"src":"2092:4:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1022,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":928,"src":"2098:2:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"baseExpression":{"id":1023,"name":"amounts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":931,"src":"2102:7:9","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[] calldata"}},"id":1025,"indexExpression":{"id":1024,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":974,"src":"2110:1:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2102:10:9","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":1018,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":991,"src":"2069:5:9","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$315","typeString":"contract IERC20"}},"id":1020,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2075:16:9","memberName":"safeTransferFrom","nodeType":"MemberAccess","referencedDeclaration":387,"src":"2069:22:9","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_IERC20_$315_$_t_address_$_t_address_$_t_uint256_$returns$__$attached_to$_t_contract$_IERC20_$315_$","typeString":"function (contract IERC20,address,address,uint256)"}},"id":1026,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2069:44:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1027,"nodeType":"ExpressionStatement","src":"2069:44:9"},{"eventCall":{"arguments":[{"baseExpression":{"id":1029,"name":"tokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":924,"src":"2156:6:9","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":1031,"indexExpression":{"id":1030,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":974,"src":"2163:1:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2156:9:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1032,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":926,"src":"2167:4:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1033,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":928,"src":"2173:2:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"baseExpression":{"id":1034,"name":"amounts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":931,"src":"2177:7:9","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[] calldata"}},"id":1036,"indexExpression":{"id":1035,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":974,"src":"2185:1:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2177:10:9","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":1028,"name":"TokenTransferred","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":912,"src":"2139:16:9","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,address,uint256)"}},"id":1037,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2139:49:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1038,"nodeType":"EmitStatement","src":"2134:54:9"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":980,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":977,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":974,"src":"1703:1:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":978,"name":"tokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":924,"src":"1707:6:9","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":979,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1714:6:9","memberName":"length","nodeType":"MemberAccess","src":"1707:13:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1703:17:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1042,"initializationExpression":{"assignments":[974],"declarations":[{"constant":false,"id":974,"mutability":"mutable","name":"i","nameLocation":"1696:1:9","nodeType":"VariableDeclaration","scope":1042,"src":"1688:9:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":973,"name":"uint256","nodeType":"ElementaryTypeName","src":"1688:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":976,"initialValue":{"hexValue":"30","id":975,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1700:1:9","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"1688:13:9"},"loopExpression":{"expression":{"id":982,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"1722:3:9","subExpression":{"id":981,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":974,"src":"1722:1:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":983,"nodeType":"ExpressionStatement","src":"1722:3:9"},"nodeType":"ForStatement","src":"1683:532:9"},{"eventCall":{"arguments":[{"id":1044,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":926,"src":"2255:4:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1045,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":928,"src":"2261:2:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":1046,"name":"tokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":924,"src":"2265:6:9","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":1047,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2272:6:9","memberName":"length","nodeType":"MemberAccess","src":"2265:13:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1043,"name":"BatchTransferCompleted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":920,"src":"2232:22:9","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":1048,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2232:47:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1049,"nodeType":"EmitStatement","src":"2227:52:9"}]},"documentation":{"id":921,"nodeType":"StructuredDocumentation","src":"857:389:9","text":" @notice Transfer multiple tokens from one address to another\n @dev Requires approval for each token beforehand\n @param tokens Array of token addresses to transfer\n @param from Source address (must have approved this contract)\n @param to Destination address\n @param amounts Array of amounts to transfer (corresponding to tokens array)"},"functionSelector":"ee07c804","id":1051,"implemented":true,"kind":"function","modifiers":[{"id":934,"kind":"modifierInvocation","modifierName":{"id":933,"name":"nonReentrant","nameLocations":["1412:12:9"],"nodeType":"IdentifierPath","referencedDeclaration":842,"src":"1412:12:9"},"nodeType":"ModifierInvocation","src":"1412:12:9"}],"name":"batchTransferFrom","nameLocation":"1261:17:9","nodeType":"FunctionDefinition","parameters":{"id":932,"nodeType":"ParameterList","parameters":[{"constant":false,"id":924,"mutability":"mutable","name":"tokens","nameLocation":"1308:6:9","nodeType":"VariableDeclaration","scope":1051,"src":"1289:25:9","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":922,"name":"address","nodeType":"ElementaryTypeName","src":"1289:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":923,"nodeType":"ArrayTypeName","src":"1289:9:9","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":926,"mutability":"mutable","name":"from","nameLocation":"1333:4:9","nodeType":"VariableDeclaration","scope":1051,"src":"1325:12:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":925,"name":"address","nodeType":"ElementaryTypeName","src":"1325:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":928,"mutability":"mutable","name":"to","nameLocation":"1356:2:9","nodeType":"VariableDeclaration","scope":1051,"src":"1348:10:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":927,"name":"address","nodeType":"ElementaryTypeName","src":"1348:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":931,"mutability":"mutable","name":"amounts","nameLocation":"1388:7:9","nodeType":"VariableDeclaration","scope":1051,"src":"1369:26:9","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":929,"name":"uint256","nodeType":"ElementaryTypeName","src":"1369:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":930,"nodeType":"ArrayTypeName","src":"1369:9:9","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"1278:124:9"},"returnParameters":{"id":935,"nodeType":"ParameterList","parameters":[],"src":"1425:0:9"},"scope":1248,"src":"1252:1035:9","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":1142,"nodeType":"Block","src":"2725:610:9","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":1071,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1066,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1054,"src":"2744:5:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":1069,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2761:1:9","typeDescriptions":{"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":1068,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2753:7:9","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1067,"name":"address","nodeType":"ElementaryTypeName","src":"2753:7:9","typeDescriptions":{}}},"id":1070,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2753:10:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2744:19:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"496e76616c696420746f6b656e","id":1072,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2765:15:9","typeDescriptions":{"typeIdentifier":"t_stringliteral_5e70ebd1d4072d337a7fabaa7bda70fa2633d6e3f89d5cb725a16b10d07e54c6","typeString":"literal_string \"Invalid token\""},"value":"Invalid token"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_5e70ebd1d4072d337a7fabaa7bda70fa2633d6e3f89d5cb725a16b10d07e54c6","typeString":"literal_string \"Invalid token\""}],"id":1065,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2736:7:9","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":1073,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2736:45:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1074,"nodeType":"ExpressionStatement","src":"2736:45:9"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":1081,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1076,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1058,"src":"2800:2:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":1079,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2814:1:9","typeDescriptions":{"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":1078,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2806:7:9","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1077,"name":"address","nodeType":"ElementaryTypeName","src":"2806:7:9","typeDescriptions":{}}},"id":1080,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2806:10:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2800:16:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"496e76616c69642064657374696e6174696f6e","id":1082,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2818:21:9","typeDescriptions":{"typeIdentifier":"t_stringliteral_480a3d2cf1e4838d740f40eac57f23eb6facc0baaf1a65a7b61df6a5a00ed368","typeString":"literal_string \"Invalid destination\""},"value":"Invalid destination"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_480a3d2cf1e4838d740f40eac57f23eb6facc0baaf1a65a7b61df6a5a00ed368","typeString":"literal_string \"Invalid destination\""}],"id":1075,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2792:7:9","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":1083,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2792:48:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1084,"nodeType":"ExpressionStatement","src":"2792:48:9"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":1091,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1086,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1056,"src":"2859:4:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":1089,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2875:1:9","typeDescriptions":{"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":1088,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2867:7:9","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1087,"name":"address","nodeType":"ElementaryTypeName","src":"2867:7:9","typeDescriptions":{}}},"id":1090,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2867:10:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2859:18:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"496e76616c696420736f75726365","id":1092,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2879:16:9","typeDescriptions":{"typeIdentifier":"t_stringliteral_3191da89117a1b0027f3623a186706fe04c82acd10c13dd219b922faa6967c0e","typeString":"literal_string \"Invalid source\""},"value":"Invalid source"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_3191da89117a1b0027f3623a186706fe04c82acd10c13dd219b922faa6967c0e","typeString":"literal_string \"Invalid source\""}],"id":1085,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2851:7:9","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":1093,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2851:45:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1094,"nodeType":"ExpressionStatement","src":"2851:45:9"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1098,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1096,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1060,"src":"2915:6:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":1097,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2924:1:9","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2915:10:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"416d6f756e74206d7573742062652067726561746572207468616e2030","id":1099,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2927:31:9","typeDescriptions":{"typeIdentifier":"t_stringliteral_3e76f273c719bb7d23db533a2dc9a822ae7d899fcd42eb8910272e24764e8296","typeString":"literal_string \"Amount must be greater than 0\""},"value":"Amount must be greater than 0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_3e76f273c719bb7d23db533a2dc9a822ae7d899fcd42eb8910272e24764e8296","typeString":"literal_string \"Amount must be greater than 0\""}],"id":1095,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2907:7:9","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":1100,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2907:52:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1101,"nodeType":"ExpressionStatement","src":"2907:52:9"},{"assignments":[1104],"declarations":[{"constant":false,"id":1104,"mutability":"mutable","name":"tokenContract","nameLocation":"2979:13:9","nodeType":"VariableDeclaration","scope":1142,"src":"2972:20:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$315","typeString":"contract IERC20"},"typeName":{"id":1103,"nodeType":"UserDefinedTypeName","pathNode":{"id":1102,"name":"IERC20","nameLocations":["2972:6:9"],"nodeType":"IdentifierPath","referencedDeclaration":315,"src":"2972:6:9"},"referencedDeclaration":315,"src":"2972:6:9","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$315","typeString":"contract IERC20"}},"visibility":"internal"}],"id":1108,"initialValue":{"arguments":[{"id":1106,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1054,"src":"3002:5:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":1105,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":315,"src":"2995:6:9","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC20_$315_$","typeString":"type(contract IERC20)"}},"id":1107,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2995:13:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$315","typeString":"contract IERC20"}},"nodeType":"VariableDeclarationStatement","src":"2972:36:9"},{"assignments":[1110],"declarations":[{"constant":false,"id":1110,"mutability":"mutable","name":"allowance","nameLocation":"3065:9:9","nodeType":"VariableDeclaration","scope":1142,"src":"3057:17:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1109,"name":"uint256","nodeType":"ElementaryTypeName","src":"3057:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1119,"initialValue":{"arguments":[{"id":1113,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1056,"src":"3101:4:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":1116,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"3115:4:9","typeDescriptions":{"typeIdentifier":"t_contract$_BatchTransfer_$1248","typeString":"contract BatchTransfer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_BatchTransfer_$1248","typeString":"contract BatchTransfer"}],"id":1115,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3107:7:9","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1114,"name":"address","nodeType":"ElementaryTypeName","src":"3107:7:9","typeDescriptions":{}}},"id":1117,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3107:13:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":1111,"name":"tokenContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1104,"src":"3077:13:9","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$315","typeString":"contract IERC20"}},"id":1112,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3091:9:9","memberName":"allowance","nodeType":"MemberAccess","referencedDeclaration":292,"src":"3077:23:9","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$","typeString":"function (address,address) view external returns (uint256)"}},"id":1118,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3077:44:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3057:64:9"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1123,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1121,"name":"allowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1110,"src":"3140:9:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":1122,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1060,"src":"3153:6:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3140:19:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"496e73756666696369656e7420616c6c6f77616e6365","id":1124,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3161:24:9","typeDescriptions":{"typeIdentifier":"t_stringliteral_45e3d26e36c3151c7f92a1eee9add9658cbb8e14605ee2452ec007389b9744bc","typeString":"literal_string \"Insufficient allowance\""},"value":"Insufficient allowance"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_45e3d26e36c3151c7f92a1eee9add9658cbb8e14605ee2452ec007389b9744bc","typeString":"literal_string \"Insufficient allowance\""}],"id":1120,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"3132:7:9","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":1125,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3132:54:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1126,"nodeType":"ExpressionStatement","src":"3132:54:9"},{"expression":{"arguments":[{"id":1130,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1056,"src":"3251:4:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1131,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1058,"src":"3257:2:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1132,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1060,"src":"3261:6:9","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":1127,"name":"tokenContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1104,"src":"3220:13:9","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$315","typeString":"contract IERC20"}},"id":1129,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3234:16:9","memberName":"safeTransferFrom","nodeType":"MemberAccess","referencedDeclaration":387,"src":"3220:30:9","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_IERC20_$315_$_t_address_$_t_address_$_t_uint256_$returns$__$attached_to$_t_contract$_IERC20_$315_$","typeString":"function (contract IERC20,address,address,uint256)"}},"id":1133,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3220:48:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1134,"nodeType":"ExpressionStatement","src":"3220:48:9"},{"eventCall":{"arguments":[{"id":1136,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1054,"src":"3303:5:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1137,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1056,"src":"3310:4:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1138,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1058,"src":"3316:2:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1139,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1060,"src":"3320:6:9","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":1135,"name":"TokenTransferred","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":912,"src":"3286:16:9","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,address,uint256)"}},"id":1140,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3286:41:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1141,"nodeType":"EmitStatement","src":"3281:46:9"}]},"documentation":{"id":1052,"nodeType":"StructuredDocumentation","src":"2295:274:9","text":" @notice Transfer a single token using transferFrom\n @dev Requires approval beforehand\n @param token Token address to transfer\n @param from Source address\n @param to Destination address\n @param amount Amount to transfer"},"functionSelector":"df904e33","id":1143,"implemented":true,"kind":"function","modifiers":[{"id":1063,"kind":"modifierInvocation","modifierName":{"id":1062,"name":"nonReentrant","nameLocations":["2712:12:9"],"nodeType":"IdentifierPath","referencedDeclaration":842,"src":"2712:12:9"},"nodeType":"ModifierInvocation","src":"2712:12:9"}],"name":"singleTransferFrom","nameLocation":"2584:18:9","nodeType":"FunctionDefinition","parameters":{"id":1061,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1054,"mutability":"mutable","name":"token","nameLocation":"2621:5:9","nodeType":"VariableDeclaration","scope":1143,"src":"2613:13:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1053,"name":"address","nodeType":"ElementaryTypeName","src":"2613:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1056,"mutability":"mutable","name":"from","nameLocation":"2645:4:9","nodeType":"VariableDeclaration","scope":1143,"src":"2637:12:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1055,"name":"address","nodeType":"ElementaryTypeName","src":"2637:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1058,"mutability":"mutable","name":"to","nameLocation":"2668:2:9","nodeType":"VariableDeclaration","scope":1143,"src":"2660:10:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1057,"name":"address","nodeType":"ElementaryTypeName","src":"2660:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1060,"mutability":"mutable","name":"amount","nameLocation":"2689:6:9","nodeType":"VariableDeclaration","scope":1143,"src":"2681:14:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1059,"name":"uint256","nodeType":"ElementaryTypeName","src":"2681:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2602:100:9"},"returnParameters":{"id":1064,"nodeType":"ParameterList","parameters":[],"src":"2725:0:9"},"scope":1248,"src":"2575:760:9","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":1196,"nodeType":"Block","src":"3703:254:9","statements":[{"expression":{"id":1162,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1155,"name":"allowances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1153,"src":"3714:10:9","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"id":1159,"name":"tokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1147,"src":"3741:6:9","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":1160,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3748:6:9","memberName":"length","nodeType":"MemberAccess","src":"3741:13:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1158,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"3727:13:9","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":1156,"name":"uint256","nodeType":"ElementaryTypeName","src":"3731:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1157,"nodeType":"ArrayTypeName","src":"3731:9:9","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}}},"id":1161,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3727:28:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"src":"3714:41:9","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":1163,"nodeType":"ExpressionStatement","src":"3714:41:9"},{"body":{"id":1192,"nodeType":"Block","src":"3820:92:9","statements":[{"expression":{"id":1190,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":1175,"name":"allowances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1153,"src":"3835:10:9","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":1177,"indexExpression":{"id":1176,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1165,"src":"3846:1:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3835:13:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":1184,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1149,"src":"3879:5:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":1187,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"3894:4:9","typeDescriptions":{"typeIdentifier":"t_contract$_BatchTransfer_$1248","typeString":"contract BatchTransfer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_BatchTransfer_$1248","typeString":"contract BatchTransfer"}],"id":1186,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3886:7:9","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1185,"name":"address","nodeType":"ElementaryTypeName","src":"3886:7:9","typeDescriptions":{}}},"id":1188,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3886:13:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[{"baseExpression":{"id":1179,"name":"tokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1147,"src":"3858:6:9","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":1181,"indexExpression":{"id":1180,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1165,"src":"3865:1:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3858:9:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":1178,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":315,"src":"3851:6:9","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC20_$315_$","typeString":"type(contract IERC20)"}},"id":1182,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3851:17:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$315","typeString":"contract IERC20"}},"id":1183,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3869:9:9","memberName":"allowance","nodeType":"MemberAccess","referencedDeclaration":292,"src":"3851:27:9","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$","typeString":"function (address,address) view external returns (uint256)"}},"id":1189,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3851:49:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3835:65:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1191,"nodeType":"ExpressionStatement","src":"3835:65:9"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1171,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1168,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1165,"src":"3796:1:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":1169,"name":"tokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1147,"src":"3800:6:9","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":1170,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3807:6:9","memberName":"length","nodeType":"MemberAccess","src":"3800:13:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3796:17:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1193,"initializationExpression":{"assignments":[1165],"declarations":[{"constant":false,"id":1165,"mutability":"mutable","name":"i","nameLocation":"3789:1:9","nodeType":"VariableDeclaration","scope":1193,"src":"3781:9:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1164,"name":"uint256","nodeType":"ElementaryTypeName","src":"3781:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1167,"initialValue":{"hexValue":"30","id":1166,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3793:1:9","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"3781:13:9"},"loopExpression":{"expression":{"id":1173,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"3815:3:9","subExpression":{"id":1172,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1165,"src":"3815:1:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1174,"nodeType":"ExpressionStatement","src":"3815:3:9"},"nodeType":"ForStatement","src":"3776:136:9"},{"expression":{"id":1194,"name":"allowances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1153,"src":"3939:10:9","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"functionReturnParameters":1154,"id":1195,"nodeType":"Return","src":"3932:17:9"}]},"documentation":{"id":1144,"nodeType":"StructuredDocumentation","src":"3343:210:9","text":" @notice Check allowances for multiple tokens\n @param tokens Array of token addresses\n @param owner Address of token owner\n @return allowances Array of allowance amounts"},"functionSelector":"4c8e3948","id":1197,"implemented":true,"kind":"function","modifiers":[],"name":"checkAllowances","nameLocation":"3568:15:9","nodeType":"FunctionDefinition","parameters":{"id":1150,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1147,"mutability":"mutable","name":"tokens","nameLocation":"3613:6:9","nodeType":"VariableDeclaration","scope":1197,"src":"3594:25:9","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":1145,"name":"address","nodeType":"ElementaryTypeName","src":"3594:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":1146,"nodeType":"ArrayTypeName","src":"3594:9:9","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":1149,"mutability":"mutable","name":"owner","nameLocation":"3638:5:9","nodeType":"VariableDeclaration","scope":1197,"src":"3630:13:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1148,"name":"address","nodeType":"ElementaryTypeName","src":"3630:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3583:67:9"},"returnParameters":{"id":1154,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1153,"mutability":"mutable","name":"allowances","nameLocation":"3691:10:9","nodeType":"VariableDeclaration","scope":1197,"src":"3674:27:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":1151,"name":"uint256","nodeType":"ElementaryTypeName","src":"3674:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1152,"nodeType":"ArrayTypeName","src":"3674:9:9","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"3673:29:9"},"scope":1248,"src":"3559:398:9","stateMutability":"view","virtual":false,"visibility":"external"},{"body":{"id":1246,"nodeType":"Block","src":"4315:233:9","statements":[{"expression":{"id":1216,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1209,"name":"balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1207,"src":"4326:8:9","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"id":1213,"name":"tokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1201,"src":"4351:6:9","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":1214,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4358:6:9","memberName":"length","nodeType":"MemberAccess","src":"4351:13:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1212,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"4337:13:9","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":1210,"name":"uint256","nodeType":"ElementaryTypeName","src":"4341:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1211,"nodeType":"ArrayTypeName","src":"4341:9:9","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}}},"id":1215,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4337:28:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"src":"4326:39:9","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":1217,"nodeType":"ExpressionStatement","src":"4326:39:9"},{"body":{"id":1242,"nodeType":"Block","src":"4430:75:9","statements":[{"expression":{"id":1240,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":1229,"name":"balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1207,"src":"4445:8:9","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":1231,"indexExpression":{"id":1230,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1219,"src":"4454:1:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"4445:11:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":1238,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1203,"src":"4487:5:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[{"baseExpression":{"id":1233,"name":"tokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1201,"src":"4466:6:9","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":1235,"indexExpression":{"id":1234,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1219,"src":"4473:1:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4466:9:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":1232,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":315,"src":"4459:6:9","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC20_$315_$","typeString":"type(contract IERC20)"}},"id":1236,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4459:17:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$315","typeString":"contract IERC20"}},"id":1237,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4477:9:9","memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":272,"src":"4459:27:9","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":1239,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4459:34:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4445:48:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1241,"nodeType":"ExpressionStatement","src":"4445:48:9"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1225,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1222,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1219,"src":"4406:1:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":1223,"name":"tokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1201,"src":"4410:6:9","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":1224,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4417:6:9","memberName":"length","nodeType":"MemberAccess","src":"4410:13:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4406:17:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1243,"initializationExpression":{"assignments":[1219],"declarations":[{"constant":false,"id":1219,"mutability":"mutable","name":"i","nameLocation":"4399:1:9","nodeType":"VariableDeclaration","scope":1243,"src":"4391:9:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1218,"name":"uint256","nodeType":"ElementaryTypeName","src":"4391:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1221,"initialValue":{"hexValue":"30","id":1220,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4403:1:9","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"4391:13:9"},"loopExpression":{"expression":{"id":1227,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"4425:3:9","subExpression":{"id":1226,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1219,"src":"4425:1:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1228,"nodeType":"ExpressionStatement","src":"4425:3:9"},"nodeType":"ForStatement","src":"4386:119:9"},{"expression":{"id":1244,"name":"balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1207,"src":"4532:8:9","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"functionReturnParameters":1208,"id":1245,"nodeType":"Return","src":"4525:15:9"}]},"documentation":{"id":1198,"nodeType":"StructuredDocumentation","src":"3965:204:9","text":" @notice Check balances for multiple tokens\n @param tokens Array of token addresses\n @param owner Address of token owner\n @return balances Array of balance amounts"},"functionSelector":"322eb93a","id":1247,"implemented":true,"kind":"function","modifiers":[],"name":"checkBalances","nameLocation":"4184:13:9","nodeType":"FunctionDefinition","parameters":{"id":1204,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1201,"mutability":"mutable","name":"tokens","nameLocation":"4227:6:9","nodeType":"VariableDeclaration","scope":1247,"src":"4208:25:9","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":1199,"name":"address","nodeType":"ElementaryTypeName","src":"4208:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":1200,"nodeType":"ArrayTypeName","src":"4208:9:9","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":1203,"mutability":"mutable","name":"owner","nameLocation":"4252:5:9","nodeType":"VariableDeclaration","scope":1247,"src":"4244:13:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1202,"name":"address","nodeType":"ElementaryTypeName","src":"4244:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4197:67:9"},"returnParameters":{"id":1208,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1207,"mutability":"mutable","name":"balances","nameLocation":"4305:8:9","nodeType":"VariableDeclaration","scope":1247,"src":"4288:25:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":1205,"name":"uint256","nodeType":"ElementaryTypeName","src":"4288:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1206,"nodeType":"ArrayTypeName","src":"4288:9:9","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"4287:27:9"},"scope":1248,"src":"4175:373:9","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":1249,"src":"470:4081:9","usedErrors":[327,823],"usedEvents":[912,920]}],"src":"33:4520:9"},"id":9},"contracts/TokenCollector.sol":{"ast":{"absolutePath":"contracts/TokenCollector.sol","exportedSymbols":{"Context":[809],"IERC1363":[229],"IERC20":[315],"Ownable":[147],"ReentrancyGuard":[878],"SafeERC20":[779],"TokenCollector":[1962]},"id":1963,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":1250,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"33:24:10"},{"absolutePath":"@openzeppelin/contracts/token/ERC20/IERC20.sol","file":"@openzeppelin/contracts/token/ERC20/IERC20.sol","id":1251,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":1963,"sourceUnit":316,"src":"61:56:10","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol","file":"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol","id":1252,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":1963,"sourceUnit":780,"src":"119:65:10","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/access/Ownable.sol","file":"@openzeppelin/contracts/access/Ownable.sol","id":1253,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":1963,"sourceUnit":148,"src":"186:52:10","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/ReentrancyGuard.sol","file":"@openzeppelin/contracts/utils/ReentrancyGuard.sol","id":1254,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":1963,"sourceUnit":879,"src":"240:59:10","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":1256,"name":"Ownable","nameLocations":["741:7:10"],"nodeType":"IdentifierPath","referencedDeclaration":147,"src":"741:7:10"},"id":1257,"nodeType":"InheritanceSpecifier","src":"741:7:10"},{"baseName":{"id":1258,"name":"ReentrancyGuard","nameLocations":["750:15:10"],"nodeType":"IdentifierPath","referencedDeclaration":878,"src":"750:15:10"},"id":1259,"nodeType":"InheritanceSpecifier","src":"750:15:10"}],"canonicalName":"TokenCollector","contractDependencies":[],"contractKind":"contract","documentation":{"id":1255,"nodeType":"StructuredDocumentation","src":"303:409:10","text":" @title TokenCollector\n @notice Contract that receives token approvals and allows owner to claim tokens\n @dev Users approve this contract to spend their tokens, admin claims to recipient\n \n Flow:\n 1. User approves this contract to spend their tokens\n 2. Admin calls claimTokens() or batchClaimTokens() to transfer tokens\n 3. Tokens are sent to the configured recipient address"},"fullyImplemented":true,"id":1962,"linearizedBaseContracts":[1962,878,147,809],"name":"TokenCollector","nameLocation":"723:14:10","nodeType":"ContractDefinition","nodes":[{"global":false,"id":1263,"libraryName":{"id":1260,"name":"SafeERC20","nameLocations":["779:9:10"],"nodeType":"IdentifierPath","referencedDeclaration":779,"src":"779:9:10"},"nodeType":"UsingForDirective","src":"773:27:10","typeName":{"id":1262,"nodeType":"UserDefinedTypeName","pathNode":{"id":1261,"name":"IERC20","nameLocations":["793:6:10"],"nodeType":"IdentifierPath","referencedDeclaration":315,"src":"793:6:10"},"referencedDeclaration":315,"src":"793:6:10","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$315","typeString":"contract IERC20"}}},{"constant":false,"functionSelector":"66d003ac","id":1265,"mutability":"mutable","name":"recipient","nameLocation":"879:9:10","nodeType":"VariableDeclaration","scope":1962,"src":"864:24:10","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1264,"name":"address","nodeType":"ElementaryTypeName","src":"864:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"constant":false,"functionSelector":"13e7c9d8","id":1269,"mutability":"mutable","name":"operators","nameLocation":"981:9:10","nodeType":"VariableDeclaration","scope":1962,"src":"949:41:10","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"},"typeName":{"id":1268,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":1266,"name":"address","nodeType":"ElementaryTypeName","src":"957:7:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"949:24:10","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":1267,"name":"bool","nodeType":"ElementaryTypeName","src":"968:4:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}},"visibility":"public"},{"anonymous":false,"eventSelector":"62e69886a5df0ba8ffcacbfc1388754e7abd9bde24b036354c561f1acd4e4593","id":1275,"name":"RecipientUpdated","nameLocation":"1020:16:10","nodeType":"EventDefinition","parameters":{"id":1274,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1271,"indexed":true,"mutability":"mutable","name":"oldRecipient","nameLocation":"1053:12:10","nodeType":"VariableDeclaration","scope":1275,"src":"1037:28:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1270,"name":"address","nodeType":"ElementaryTypeName","src":"1037:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1273,"indexed":true,"mutability":"mutable","name":"newRecipient","nameLocation":"1083:12:10","nodeType":"VariableDeclaration","scope":1275,"src":"1067:28:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1272,"name":"address","nodeType":"ElementaryTypeName","src":"1067:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1036:60:10"},"src":"1014:83:10"},{"anonymous":false,"eventSelector":"966c160e1c4dbc7df8d69af4ace01e9297c3cf016397b7914971f2fbfa32672d","id":1281,"name":"OperatorUpdated","nameLocation":"1109:15:10","nodeType":"EventDefinition","parameters":{"id":1280,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1277,"indexed":true,"mutability":"mutable","name":"operator","nameLocation":"1141:8:10","nodeType":"VariableDeclaration","scope":1281,"src":"1125:24:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1276,"name":"address","nodeType":"ElementaryTypeName","src":"1125:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1279,"indexed":false,"mutability":"mutable","name":"authorized","nameLocation":"1156:10:10","nodeType":"VariableDeclaration","scope":1281,"src":"1151:15:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1278,"name":"bool","nodeType":"ElementaryTypeName","src":"1151:4:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1124:43:10"},"src":"1103:65:10"},{"anonymous":false,"eventSelector":"40b4b442b70a20081fa377001b642c7d3618847a45b5b8ed2b938e30a3299ddb","id":1291,"name":"TokensClaimed","nameLocation":"1180:13:10","nodeType":"EventDefinition","parameters":{"id":1290,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1283,"indexed":true,"mutability":"mutable","name":"token","nameLocation":"1220:5:10","nodeType":"VariableDeclaration","scope":1291,"src":"1204:21:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1282,"name":"address","nodeType":"ElementaryTypeName","src":"1204:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1285,"indexed":true,"mutability":"mutable","name":"from","nameLocation":"1252:4:10","nodeType":"VariableDeclaration","scope":1291,"src":"1236:20:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1284,"name":"address","nodeType":"ElementaryTypeName","src":"1236:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1287,"indexed":true,"mutability":"mutable","name":"to","nameLocation":"1283:2:10","nodeType":"VariableDeclaration","scope":1291,"src":"1267:18:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1286,"name":"address","nodeType":"ElementaryTypeName","src":"1267:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1289,"indexed":false,"mutability":"mutable","name":"amount","nameLocation":"1304:6:10","nodeType":"VariableDeclaration","scope":1291,"src":"1296:14:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1288,"name":"uint256","nodeType":"ElementaryTypeName","src":"1296:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1193:124:10"},"src":"1174:144:10"},{"anonymous":false,"eventSelector":"71237a03fe853c3c0682da9bfc664772440710f03c32039d7ff77644fbc823ce","id":1301,"name":"BatchClaimCompleted","nameLocation":"1330:19:10","nodeType":"EventDefinition","parameters":{"id":1300,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1293,"indexed":true,"mutability":"mutable","name":"from","nameLocation":"1376:4:10","nodeType":"VariableDeclaration","scope":1301,"src":"1360:20:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1292,"name":"address","nodeType":"ElementaryTypeName","src":"1360:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1295,"indexed":true,"mutability":"mutable","name":"to","nameLocation":"1407:2:10","nodeType":"VariableDeclaration","scope":1301,"src":"1391:18:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1294,"name":"address","nodeType":"ElementaryTypeName","src":"1391:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1297,"indexed":false,"mutability":"mutable","name":"tokenCount","nameLocation":"1428:10:10","nodeType":"VariableDeclaration","scope":1301,"src":"1420:18:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1296,"name":"uint256","nodeType":"ElementaryTypeName","src":"1420:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1299,"indexed":false,"mutability":"mutable","name":"totalValue","nameLocation":"1457:10:10","nodeType":"VariableDeclaration","scope":1301,"src":"1449:18:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1298,"name":"uint256","nodeType":"ElementaryTypeName","src":"1449:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1349:125:10"},"src":"1324:151:10"},{"errorSelector":"d92e233d","id":1303,"name":"ZeroAddress","nameLocation":"1504:11:10","nodeType":"ErrorDefinition","parameters":{"id":1302,"nodeType":"ParameterList","parameters":[],"src":"1515:2:10"},"src":"1498:20:10"},{"errorSelector":"ea8e4eb5","id":1305,"name":"NotAuthorized","nameLocation":"1530:13:10","nodeType":"ErrorDefinition","parameters":{"id":1304,"nodeType":"ParameterList","parameters":[],"src":"1543:2:10"},"src":"1524:22:10"},{"errorSelector":"192b9e4e","id":1313,"name":"InsufficientAllowance","nameLocation":"1558:21:10","nodeType":"ErrorDefinition","parameters":{"id":1312,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1307,"mutability":"mutable","name":"token","nameLocation":"1588:5:10","nodeType":"VariableDeclaration","scope":1313,"src":"1580:13:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1306,"name":"address","nodeType":"ElementaryTypeName","src":"1580:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1309,"mutability":"mutable","name":"required","nameLocation":"1603:8:10","nodeType":"VariableDeclaration","scope":1313,"src":"1595:16:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1308,"name":"uint256","nodeType":"ElementaryTypeName","src":"1595:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1311,"mutability":"mutable","name":"actual","nameLocation":"1621:6:10","nodeType":"VariableDeclaration","scope":1313,"src":"1613:14:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1310,"name":"uint256","nodeType":"ElementaryTypeName","src":"1613:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1579:49:10"},"src":"1552:77:10"},{"errorSelector":"90b8ec18","id":1315,"name":"TransferFailed","nameLocation":"1641:14:10","nodeType":"ErrorDefinition","parameters":{"id":1314,"nodeType":"ParameterList","parameters":[],"src":"1655:2:10"},"src":"1635:23:10"},{"errorSelector":"a24a13a6","id":1317,"name":"ArrayLengthMismatch","nameLocation":"1670:19:10","nodeType":"ErrorDefinition","parameters":{"id":1316,"nodeType":"ParameterList","parameters":[],"src":"1689:2:10"},"src":"1664:28:10"},{"errorSelector":"a600c81d","id":1319,"name":"EmptyArrays","nameLocation":"1704:11:10","nodeType":"ErrorDefinition","parameters":{"id":1318,"nodeType":"ParameterList","parameters":[],"src":"1715:2:10"},"src":"1698:20:10"},{"body":{"id":1338,"nodeType":"Block","src":"1752:132:10","statements":[{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":1331,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":1325,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":1321,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1767:3:10","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":1322,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1771:6:10","memberName":"sender","nodeType":"MemberAccess","src":"1767:10:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":1323,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67,"src":"1781:5:10","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":1324,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1781:7:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1767:21:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"id":1330,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"1792:22:10","subExpression":{"baseExpression":{"id":1326,"name":"operators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1269,"src":"1793:9:10","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":1329,"indexExpression":{"expression":{"id":1327,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1803:3:10","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":1328,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1807:6:10","memberName":"sender","nodeType":"MemberAccess","src":"1803:10:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1793:21:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"1767:47:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1336,"nodeType":"IfStatement","src":"1763:102:10","trueBody":{"id":1335,"nodeType":"Block","src":"1816:49:10","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":1332,"name":"NotAuthorized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1305,"src":"1838:13:10","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":1333,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1838:15:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1334,"nodeType":"RevertStatement","src":"1831:22:10"}]}},{"id":1337,"nodeType":"PlaceholderStatement","src":"1875:1:10"}]},"id":1339,"name":"onlyAuthorized","nameLocation":"1735:14:10","nodeType":"ModifierDefinition","parameters":{"id":1320,"nodeType":"ParameterList","parameters":[],"src":"1749:2:10"},"src":"1726:158:10","virtual":false,"visibility":"internal"},{"body":{"id":1363,"nodeType":"Block","src":"2095:102:10","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":1354,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1349,"name":"_recipient","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1342,"src":"2110:10:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":1352,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2132:1:10","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":1351,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2124:7:10","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1350,"name":"address","nodeType":"ElementaryTypeName","src":"2124:7:10","typeDescriptions":{}}},"id":1353,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2124:10:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2110:24:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1358,"nodeType":"IfStatement","src":"2106:50:10","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":1355,"name":"ZeroAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1303,"src":"2143:11:10","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":1356,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2143:13:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1357,"nodeType":"RevertStatement","src":"2136:20:10"}},{"expression":{"id":1361,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1359,"name":"recipient","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1265,"src":"2167:9:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":1360,"name":"_recipient","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1342,"src":"2179:10:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2167:22:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":1362,"nodeType":"ExpressionStatement","src":"2167:22:10"}]},"documentation":{"id":1340,"nodeType":"StructuredDocumentation","src":"1892:145:10","text":" @notice Constructor sets the initial owner and recipient\n @param _recipient Address where claimed tokens will be sent"},"id":1364,"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"expression":{"id":1345,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2083:3:10","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":1346,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2087:6:10","memberName":"sender","nodeType":"MemberAccess","src":"2083:10:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":1347,"kind":"baseConstructorSpecifier","modifierName":{"id":1344,"name":"Ownable","nameLocations":["2075:7:10"],"nodeType":"IdentifierPath","referencedDeclaration":147,"src":"2075:7:10"},"nodeType":"ModifierInvocation","src":"2075:19:10"}],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":1343,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1342,"mutability":"mutable","name":"_recipient","nameLocation":"2063:10:10","nodeType":"VariableDeclaration","scope":1364,"src":"2055:18:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1341,"name":"address","nodeType":"ElementaryTypeName","src":"2055:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2054:20:10"},"returnParameters":{"id":1348,"nodeType":"ParameterList","parameters":[],"src":"2095:0:10"},"scope":1962,"src":"2043:154:10","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":1395,"nodeType":"Block","src":"2383:212:10","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":1377,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1372,"name":"_newRecipient","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1367,"src":"2398:13:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":1375,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2423:1:10","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":1374,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2415:7:10","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1373,"name":"address","nodeType":"ElementaryTypeName","src":"2415:7:10","typeDescriptions":{}}},"id":1376,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2415:10:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2398:27:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1381,"nodeType":"IfStatement","src":"2394:53:10","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":1378,"name":"ZeroAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1303,"src":"2434:11:10","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":1379,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2434:13:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1380,"nodeType":"RevertStatement","src":"2427:20:10"}},{"assignments":[1383],"declarations":[{"constant":false,"id":1383,"mutability":"mutable","name":"oldRecipient","nameLocation":"2466:12:10","nodeType":"VariableDeclaration","scope":1395,"src":"2458:20:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1382,"name":"address","nodeType":"ElementaryTypeName","src":"2458:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":1385,"initialValue":{"id":1384,"name":"recipient","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1265,"src":"2481:9:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"2458:32:10"},{"expression":{"id":1388,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1386,"name":"recipient","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1265,"src":"2501:9:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":1387,"name":"_newRecipient","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1367,"src":"2513:13:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2501:25:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":1389,"nodeType":"ExpressionStatement","src":"2501:25:10"},{"eventCall":{"arguments":[{"id":1391,"name":"oldRecipient","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1383,"src":"2559:12:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1392,"name":"_newRecipient","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1367,"src":"2573:13:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":1390,"name":"RecipientUpdated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1275,"src":"2542:16:10","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address)"}},"id":1393,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2542:45:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1394,"nodeType":"EmitStatement","src":"2537:50:10"}]},"documentation":{"id":1365,"nodeType":"StructuredDocumentation","src":"2205:108:10","text":" @notice Update the recipient address\n @param _newRecipient New recipient address"},"functionSelector":"3bbed4a0","id":1396,"implemented":true,"kind":"function","modifiers":[{"id":1370,"kind":"modifierInvocation","modifierName":{"id":1369,"name":"onlyOwner","nameLocations":["2373:9:10"],"nodeType":"IdentifierPath","referencedDeclaration":58,"src":"2373:9:10"},"nodeType":"ModifierInvocation","src":"2373:9:10"}],"name":"setRecipient","nameLocation":"2328:12:10","nodeType":"FunctionDefinition","parameters":{"id":1368,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1367,"mutability":"mutable","name":"_newRecipient","nameLocation":"2349:13:10","nodeType":"VariableDeclaration","scope":1396,"src":"2341:21:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1366,"name":"address","nodeType":"ElementaryTypeName","src":"2341:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2340:23:10"},"returnParameters":{"id":1371,"nodeType":"ParameterList","parameters":[],"src":"2383:0:10"},"scope":1962,"src":"2319:276:10","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":1427,"nodeType":"Block","src":"2845:164:10","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":1411,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1406,"name":"_operator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1399,"src":"2859:9:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":1409,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2880:1:10","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":1408,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2872:7:10","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1407,"name":"address","nodeType":"ElementaryTypeName","src":"2872:7:10","typeDescriptions":{}}},"id":1410,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2872:10:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2859:23:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1415,"nodeType":"IfStatement","src":"2855:49:10","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":1412,"name":"ZeroAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1303,"src":"2891:11:10","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":1413,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2891:13:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1414,"nodeType":"RevertStatement","src":"2884:20:10"}},{"expression":{"id":1420,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":1416,"name":"operators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1269,"src":"2914:9:10","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":1418,"indexExpression":{"id":1417,"name":"_operator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1399,"src":"2924:9:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2914:20:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":1419,"name":"_authorized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1401,"src":"2937:11:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2914:34:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1421,"nodeType":"ExpressionStatement","src":"2914:34:10"},{"eventCall":{"arguments":[{"id":1423,"name":"_operator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1399,"src":"2979:9:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1424,"name":"_authorized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1401,"src":"2990:11:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":1422,"name":"OperatorUpdated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1281,"src":"2963:15:10","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_bool_$returns$__$","typeString":"function (address,bool)"}},"id":1425,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2963:39:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1426,"nodeType":"EmitStatement","src":"2958:44:10"}]},"documentation":{"id":1397,"nodeType":"StructuredDocumentation","src":"2603:159:10","text":" @notice Add or remove an operator\n @param _operator Address to update\n @param _authorized Whether the operator is authorized"},"functionSelector":"558a7297","id":1428,"implemented":true,"kind":"function","modifiers":[{"id":1404,"kind":"modifierInvocation","modifierName":{"id":1403,"name":"onlyOwner","nameLocations":["2835:9:10"],"nodeType":"IdentifierPath","referencedDeclaration":58,"src":"2835:9:10"},"nodeType":"ModifierInvocation","src":"2835:9:10"}],"name":"setOperator","nameLocation":"2777:11:10","nodeType":"FunctionDefinition","parameters":{"id":1402,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1399,"mutability":"mutable","name":"_operator","nameLocation":"2797:9:10","nodeType":"VariableDeclaration","scope":1428,"src":"2789:17:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1398,"name":"address","nodeType":"ElementaryTypeName","src":"2789:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1401,"mutability":"mutable","name":"_authorized","nameLocation":"2813:11:10","nodeType":"VariableDeclaration","scope":1428,"src":"2808:16:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1400,"name":"bool","nodeType":"ElementaryTypeName","src":"2808:4:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2788:37:10"},"returnParameters":{"id":1405,"nodeType":"ParameterList","parameters":[],"src":"2845:0:10"},"scope":1962,"src":"2768:241:10","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":1479,"nodeType":"Block","src":"3361:320:10","statements":[{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":1450,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":1443,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1438,"name":"_newRecipient","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1431,"src":"3375:13:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":1441,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3400:1:10","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":1440,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3392:7:10","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1439,"name":"address","nodeType":"ElementaryTypeName","src":"3392:7:10","typeDescriptions":{}}},"id":1442,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3392:10:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3375:27:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":1449,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1444,"name":"_operator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1433,"src":"3406:9:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":1447,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3427:1:10","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":1446,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3419:7:10","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1445,"name":"address","nodeType":"ElementaryTypeName","src":"3419:7:10","typeDescriptions":{}}},"id":1448,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3419:10:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3406:23:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"3375:54:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1454,"nodeType":"IfStatement","src":"3371:80:10","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":1451,"name":"ZeroAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1303,"src":"3438:11:10","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":1452,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3438:13:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1453,"nodeType":"RevertStatement","src":"3431:20:10"}},{"assignments":[1456],"declarations":[{"constant":false,"id":1456,"mutability":"mutable","name":"oldRecipient","nameLocation":"3470:12:10","nodeType":"VariableDeclaration","scope":1479,"src":"3462:20:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1455,"name":"address","nodeType":"ElementaryTypeName","src":"3462:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":1458,"initialValue":{"id":1457,"name":"recipient","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1265,"src":"3485:9:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"3462:32:10"},{"expression":{"id":1461,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1459,"name":"recipient","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1265,"src":"3504:9:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":1460,"name":"_newRecipient","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1431,"src":"3516:13:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3504:25:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":1462,"nodeType":"ExpressionStatement","src":"3504:25:10"},{"expression":{"id":1467,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":1463,"name":"operators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1269,"src":"3539:9:10","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":1465,"indexExpression":{"id":1464,"name":"_operator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1433,"src":"3549:9:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3539:20:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":1466,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"3562:4:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"3539:27:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1468,"nodeType":"ExpressionStatement","src":"3539:27:10"},{"eventCall":{"arguments":[{"id":1470,"name":"oldRecipient","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1456,"src":"3599:12:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1471,"name":"_newRecipient","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1431,"src":"3613:13:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":1469,"name":"RecipientUpdated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1275,"src":"3582:16:10","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address)"}},"id":1472,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3582:45:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1473,"nodeType":"EmitStatement","src":"3577:50:10"},{"eventCall":{"arguments":[{"id":1475,"name":"_operator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1433,"src":"3658:9:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"74727565","id":1476,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"3669:4:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":1474,"name":"OperatorUpdated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1281,"src":"3642:15:10","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_bool_$returns$__$","typeString":"function (address,bool)"}},"id":1477,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3642:32:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1478,"nodeType":"EmitStatement","src":"3637:37:10"}]},"documentation":{"id":1429,"nodeType":"StructuredDocumentation","src":"3015:238:10","text":" @notice Atomically update the claim recipient and authorize an operator.\n @dev If the transaction fails, neither value is changed. This is intended\n      for configuration updates from the admin application."},"functionSelector":"e52f377f","id":1480,"implemented":true,"kind":"function","modifiers":[{"id":1436,"kind":"modifierInvocation","modifierName":{"id":1435,"name":"onlyOwner","nameLocations":["3351:9:10"],"nodeType":"IdentifierPath","referencedDeclaration":58,"src":"3351:9:10"},"nodeType":"ModifierInvocation","src":"3351:9:10"}],"name":"setRecipientAndAuthorizeOperator","nameLocation":"3267:32:10","nodeType":"FunctionDefinition","parameters":{"id":1434,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1431,"mutability":"mutable","name":"_newRecipient","nameLocation":"3308:13:10","nodeType":"VariableDeclaration","scope":1480,"src":"3300:21:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1430,"name":"address","nodeType":"ElementaryTypeName","src":"3300:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1433,"mutability":"mutable","name":"_operator","nameLocation":"3331:9:10","nodeType":"VariableDeclaration","scope":1480,"src":"3323:17:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1432,"name":"address","nodeType":"ElementaryTypeName","src":"3323:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3299:42:10"},"returnParameters":{"id":1437,"nodeType":"ParameterList","parameters":[],"src":"3361:0:10"},"scope":1962,"src":"3258:423:10","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":1517,"nodeType":"Block","src":"4056:139:10","statements":[{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":1506,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":1499,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1494,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1483,"src":"4071:5:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":1497,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4088:1:10","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":1496,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4080:7:10","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1495,"name":"address","nodeType":"ElementaryTypeName","src":"4080:7:10","typeDescriptions":{}}},"id":1498,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4080:10:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4071:19:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":1505,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1500,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1485,"src":"4094:4:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":1503,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4110:1:10","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":1502,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4102:7:10","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1501,"name":"address","nodeType":"ElementaryTypeName","src":"4102:7:10","typeDescriptions":{}}},"id":1504,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4102:10:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4094:18:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"4071:41:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1510,"nodeType":"IfStatement","src":"4067:67:10","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":1507,"name":"ZeroAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1303,"src":"4121:11:10","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":1508,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4121:13:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1509,"nodeType":"RevertStatement","src":"4114:20:10"}},{"expression":{"arguments":[{"id":1512,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1483,"src":"4167:5:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1513,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1485,"src":"4174:4:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1514,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1487,"src":"4180:6:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1511,"name":"_claimToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1787,"src":"4155:11:10","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":1515,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4155:32:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1516,"nodeType":"ExpressionStatement","src":"4155:32:10"}]},"documentation":{"id":1481,"nodeType":"StructuredDocumentation","src":"3688:226:10","text":" @notice Claim a single token from a user who approved this contract\n @param token Token address to claim\n @param from Address that approved this contract\n @param amount Amount to claim"},"functionSelector":"125bfb66","id":1518,"implemented":true,"kind":"function","modifiers":[{"id":1490,"kind":"modifierInvocation","modifierName":{"id":1489,"name":"onlyAuthorized","nameLocations":["4028:14:10"],"nodeType":"IdentifierPath","referencedDeclaration":1339,"src":"4028:14:10"},"nodeType":"ModifierInvocation","src":"4028:14:10"},{"id":1492,"kind":"modifierInvocation","modifierName":{"id":1491,"name":"nonReentrant","nameLocations":["4043:12:10"],"nodeType":"IdentifierPath","referencedDeclaration":842,"src":"4043:12:10"},"nodeType":"ModifierInvocation","src":"4043:12:10"}],"name":"claimToken","nameLocation":"3929:10:10","nodeType":"FunctionDefinition","parameters":{"id":1488,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1483,"mutability":"mutable","name":"token","nameLocation":"3958:5:10","nodeType":"VariableDeclaration","scope":1518,"src":"3950:13:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1482,"name":"address","nodeType":"ElementaryTypeName","src":"3950:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1485,"mutability":"mutable","name":"from","nameLocation":"3982:4:10","nodeType":"VariableDeclaration","scope":1518,"src":"3974:12:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1484,"name":"address","nodeType":"ElementaryTypeName","src":"3974:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1487,"mutability":"mutable","name":"amount","nameLocation":"4005:6:10","nodeType":"VariableDeclaration","scope":1518,"src":"3997:14:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1486,"name":"uint256","nodeType":"ElementaryTypeName","src":"3997:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3939:79:10"},"returnParameters":{"id":1493,"nodeType":"ParameterList","parameters":[],"src":"4056:0:10"},"scope":1962,"src":"3920:275:10","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":1618,"nodeType":"Block","src":"4613:565:10","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1538,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":1534,"name":"tokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1522,"src":"4628:6:10","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":1535,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4635:6:10","memberName":"length","nodeType":"MemberAccess","src":"4628:13:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":1536,"name":"amounts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1527,"src":"4645:7:10","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[] calldata"}},"id":1537,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4653:6:10","memberName":"length","nodeType":"MemberAccess","src":"4645:14:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4628:31:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1542,"nodeType":"IfStatement","src":"4624:65:10","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":1539,"name":"ArrayLengthMismatch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1317,"src":"4668:19:10","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":1540,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4668:21:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1541,"nodeType":"RevertStatement","src":"4661:28:10"}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1546,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":1543,"name":"tokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1522,"src":"4704:6:10","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":1544,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4711:6:10","memberName":"length","nodeType":"MemberAccess","src":"4704:13:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":1545,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4721:1:10","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"4704:18:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1550,"nodeType":"IfStatement","src":"4700:44:10","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":1547,"name":"EmptyArrays","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1319,"src":"4731:11:10","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":1548,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4731:13:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1549,"nodeType":"RevertStatement","src":"4724:20:10"}},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":1556,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1551,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1524,"src":"4759:4:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":1554,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4775:1:10","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":1553,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4767:7:10","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1552,"name":"address","nodeType":"ElementaryTypeName","src":"4767:7:10","typeDescriptions":{}}},"id":1555,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4767:10:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4759:18:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1560,"nodeType":"IfStatement","src":"4755:44:10","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":1557,"name":"ZeroAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1303,"src":"4786:11:10","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":1558,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4786:13:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1559,"nodeType":"RevertStatement","src":"4779:20:10"}},{"assignments":[1562],"declarations":[{"constant":false,"id":1562,"mutability":"mutable","name":"totalValue","nameLocation":"4820:10:10","nodeType":"VariableDeclaration","scope":1618,"src":"4812:18:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1561,"name":"uint256","nodeType":"ElementaryTypeName","src":"4812:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1564,"initialValue":{"hexValue":"30","id":1563,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4833:1:10","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"4812:22:10"},{"body":{"id":1608,"nodeType":"Block","src":"4899:191:10","statements":[{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":1589,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1580,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":1576,"name":"amounts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1527,"src":"4918:7:10","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[] calldata"}},"id":1578,"indexExpression":{"id":1577,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1566,"src":"4926:1:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4918:10:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":1579,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4931:1:10","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"4918:14:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":1588,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":1581,"name":"tokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1522,"src":"4936:6:10","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":1583,"indexExpression":{"id":1582,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1566,"src":"4943:1:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4936:9:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":1586,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4957:1:10","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":1585,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4949:7:10","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1584,"name":"address","nodeType":"ElementaryTypeName","src":"4949:7:10","typeDescriptions":{}}},"id":1587,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4949:10:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4936:23:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"4918:41:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1607,"nodeType":"IfStatement","src":"4914:165:10","trueBody":{"id":1606,"nodeType":"Block","src":"4961:118:10","statements":[{"expression":{"arguments":[{"baseExpression":{"id":1591,"name":"tokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1522,"src":"4992:6:10","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":1593,"indexExpression":{"id":1592,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1566,"src":"4999:1:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4992:9:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1594,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1524,"src":"5003:4:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"baseExpression":{"id":1595,"name":"amounts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1527,"src":"5009:7:10","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[] calldata"}},"id":1597,"indexExpression":{"id":1596,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1566,"src":"5017:1:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5009:10:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1590,"name":"_claimToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1787,"src":"4980:11:10","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":1598,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4980:40:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1599,"nodeType":"ExpressionStatement","src":"4980:40:10"},{"expression":{"id":1604,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1600,"name":"totalValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1562,"src":"5039:10:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"baseExpression":{"id":1601,"name":"amounts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1527,"src":"5053:7:10","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[] calldata"}},"id":1603,"indexExpression":{"id":1602,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1566,"src":"5061:1:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5053:10:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5039:24:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1605,"nodeType":"ExpressionStatement","src":"5039:24:10"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1572,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1569,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1566,"src":"4875:1:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":1570,"name":"tokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1522,"src":"4879:6:10","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":1571,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4886:6:10","memberName":"length","nodeType":"MemberAccess","src":"4879:13:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4875:17:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1609,"initializationExpression":{"assignments":[1566],"declarations":[{"constant":false,"id":1566,"mutability":"mutable","name":"i","nameLocation":"4868:1:10","nodeType":"VariableDeclaration","scope":1609,"src":"4860:9:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1565,"name":"uint256","nodeType":"ElementaryTypeName","src":"4860:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1568,"initialValue":{"hexValue":"30","id":1567,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4872:1:10","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"4860:13:10"},"loopExpression":{"expression":{"id":1574,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"4894:3:10","subExpression":{"id":1573,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1566,"src":"4894:1:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1575,"nodeType":"ExpressionStatement","src":"4894:3:10"},"nodeType":"ForStatement","src":"4855:235:10"},{"eventCall":{"arguments":[{"id":1611,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1524,"src":"5127:4:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1612,"name":"recipient","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1265,"src":"5133:9:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":1613,"name":"tokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1522,"src":"5144:6:10","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":1614,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5151:6:10","memberName":"length","nodeType":"MemberAccess","src":"5144:13:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1615,"name":"totalValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1562,"src":"5159:10:10","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":1610,"name":"BatchClaimCompleted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1301,"src":"5107:19:10","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256,uint256)"}},"id":1616,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5107:63:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1617,"nodeType":"EmitStatement","src":"5102:68:10"}]},"documentation":{"id":1519,"nodeType":"StructuredDocumentation","src":"4203:238:10","text":" @notice Claim multiple tokens from a user in a single transaction\n @param tokens Array of token addresses\n @param from Address that approved this contract\n @param amounts Array of amounts to claim"},"functionSelector":"1fae577c","id":1619,"implemented":true,"kind":"function","modifiers":[{"id":1530,"kind":"modifierInvocation","modifierName":{"id":1529,"name":"onlyAuthorized","nameLocations":["4585:14:10"],"nodeType":"IdentifierPath","referencedDeclaration":1339,"src":"4585:14:10"},"nodeType":"ModifierInvocation","src":"4585:14:10"},{"id":1532,"kind":"modifierInvocation","modifierName":{"id":1531,"name":"nonReentrant","nameLocations":["4600:12:10"],"nodeType":"IdentifierPath","referencedDeclaration":842,"src":"4600:12:10"},"nodeType":"ModifierInvocation","src":"4600:12:10"}],"name":"batchClaimTokens","nameLocation":"4456:16:10","nodeType":"FunctionDefinition","parameters":{"id":1528,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1522,"mutability":"mutable","name":"tokens","nameLocation":"4502:6:10","nodeType":"VariableDeclaration","scope":1619,"src":"4483:25:10","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":1520,"name":"address","nodeType":"ElementaryTypeName","src":"4483:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":1521,"nodeType":"ArrayTypeName","src":"4483:9:10","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":1524,"mutability":"mutable","name":"from","nameLocation":"4527:4:10","nodeType":"VariableDeclaration","scope":1619,"src":"4519:12:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1523,"name":"address","nodeType":"ElementaryTypeName","src":"4519:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1527,"mutability":"mutable","name":"amounts","nameLocation":"4561:7:10","nodeType":"VariableDeclaration","scope":1619,"src":"4542:26:10","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":1525,"name":"uint256","nodeType":"ElementaryTypeName","src":"4542:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1526,"nodeType":"ArrayTypeName","src":"4542:9:10","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"4472:103:10"},"returnParameters":{"id":1533,"nodeType":"ParameterList","parameters":[],"src":"4613:0:10"},"scope":1962,"src":"4447:731:10","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":1710,"nodeType":"Block","src":"5619:432:10","statements":[{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":1646,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1640,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":1636,"name":"tokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1623,"src":"5634:6:10","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":1637,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5641:6:10","memberName":"length","nodeType":"MemberAccess","src":"5634:13:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":1638,"name":"froms","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1626,"src":"5651:5:10","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":1639,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5657:6:10","memberName":"length","nodeType":"MemberAccess","src":"5651:12:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5634:29:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1645,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":1641,"name":"tokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1623,"src":"5667:6:10","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":1642,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5674:6:10","memberName":"length","nodeType":"MemberAccess","src":"5667:13:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":1643,"name":"amounts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1629,"src":"5684:7:10","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[] calldata"}},"id":1644,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5692:6:10","memberName":"length","nodeType":"MemberAccess","src":"5684:14:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5667:31:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"5634:64:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1651,"nodeType":"IfStatement","src":"5630:125:10","trueBody":{"id":1650,"nodeType":"Block","src":"5700:55:10","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":1647,"name":"ArrayLengthMismatch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1317,"src":"5722:19:10","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":1648,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5722:21:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1649,"nodeType":"RevertStatement","src":"5715:28:10"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1655,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":1652,"name":"tokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1623,"src":"5769:6:10","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":1653,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5776:6:10","memberName":"length","nodeType":"MemberAccess","src":"5769:13:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":1654,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5786:1:10","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"5769:18:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1659,"nodeType":"IfStatement","src":"5765:44:10","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":1656,"name":"EmptyArrays","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1319,"src":"5796:11:10","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":1657,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5796:13:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1658,"nodeType":"RevertStatement","src":"5789:20:10"}},{"body":{"id":1708,"nodeType":"Block","src":"5866:178:10","statements":[{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":1693,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":1684,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1675,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":1671,"name":"amounts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1629,"src":"5885:7:10","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[] calldata"}},"id":1673,"indexExpression":{"id":1672,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1661,"src":"5893:1:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5885:10:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":1674,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5898:1:10","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"5885:14:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":1683,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":1676,"name":"tokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1623,"src":"5903:6:10","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":1678,"indexExpression":{"id":1677,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1661,"src":"5910:1:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5903:9:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":1681,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5924:1:10","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":1680,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5916:7:10","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1679,"name":"address","nodeType":"ElementaryTypeName","src":"5916:7:10","typeDescriptions":{}}},"id":1682,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5916:10:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"5903:23:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"5885:41:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":1692,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":1685,"name":"froms","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1626,"src":"5930:5:10","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":1687,"indexExpression":{"id":1686,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1661,"src":"5936:1:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5930:8:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":1690,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5950:1:10","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":1689,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5942:7:10","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1688,"name":"address","nodeType":"ElementaryTypeName","src":"5942:7:10","typeDescriptions":{}}},"id":1691,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5942:10:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"5930:22:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"5885:67:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1707,"nodeType":"IfStatement","src":"5881:152:10","trueBody":{"id":1706,"nodeType":"Block","src":"5954:79:10","statements":[{"expression":{"arguments":[{"baseExpression":{"id":1695,"name":"tokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1623,"src":"5985:6:10","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":1697,"indexExpression":{"id":1696,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1661,"src":"5992:1:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5985:9:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"baseExpression":{"id":1698,"name":"froms","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1626,"src":"5996:5:10","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":1700,"indexExpression":{"id":1699,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1661,"src":"6002:1:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5996:8:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"baseExpression":{"id":1701,"name":"amounts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1629,"src":"6006:7:10","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[] calldata"}},"id":1703,"indexExpression":{"id":1702,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1661,"src":"6014:1:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6006:10:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1694,"name":"_claimToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1787,"src":"5973:11:10","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":1704,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5973:44:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1705,"nodeType":"ExpressionStatement","src":"5973:44:10"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1667,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1664,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1661,"src":"5842:1:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":1665,"name":"tokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1623,"src":"5846:6:10","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":1666,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5853:6:10","memberName":"length","nodeType":"MemberAccess","src":"5846:13:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5842:17:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1709,"initializationExpression":{"assignments":[1661],"declarations":[{"constant":false,"id":1661,"mutability":"mutable","name":"i","nameLocation":"5835:1:10","nodeType":"VariableDeclaration","scope":1709,"src":"5827:9:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1660,"name":"uint256","nodeType":"ElementaryTypeName","src":"5827:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1663,"initialValue":{"hexValue":"30","id":1662,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5839:1:10","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"5827:13:10"},"loopExpression":{"expression":{"id":1669,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"5861:3:10","subExpression":{"id":1668,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1661,"src":"5861:1:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1670,"nodeType":"ExpressionStatement","src":"5861:3:10"},"nodeType":"ForStatement","src":"5822:222:10"}]},"documentation":{"id":1620,"nodeType":"StructuredDocumentation","src":"5186:243:10","text":" @notice Claim tokens from multiple users in a single transaction\n @param tokens Array of token addresses (one per user)\n @param froms Array of source addresses\n @param amounts Array of amounts to claim"},"functionSelector":"4130e293","id":1711,"implemented":true,"kind":"function","modifiers":[{"id":1632,"kind":"modifierInvocation","modifierName":{"id":1631,"name":"onlyAuthorized","nameLocations":["5591:14:10"],"nodeType":"IdentifierPath","referencedDeclaration":1339,"src":"5591:14:10"},"nodeType":"ModifierInvocation","src":"5591:14:10"},{"id":1634,"kind":"modifierInvocation","modifierName":{"id":1633,"name":"nonReentrant","nameLocations":["5606:12:10"],"nodeType":"IdentifierPath","referencedDeclaration":842,"src":"5606:12:10"},"nodeType":"ModifierInvocation","src":"5606:12:10"}],"name":"batchClaimFromMultiple","nameLocation":"5444:22:10","nodeType":"FunctionDefinition","parameters":{"id":1630,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1623,"mutability":"mutable","name":"tokens","nameLocation":"5496:6:10","nodeType":"VariableDeclaration","scope":1711,"src":"5477:25:10","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":1621,"name":"address","nodeType":"ElementaryTypeName","src":"5477:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":1622,"nodeType":"ArrayTypeName","src":"5477:9:10","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":1626,"mutability":"mutable","name":"froms","nameLocation":"5532:5:10","nodeType":"VariableDeclaration","scope":1711,"src":"5513:24:10","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":1624,"name":"address","nodeType":"ElementaryTypeName","src":"5513:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":1625,"nodeType":"ArrayTypeName","src":"5513:9:10","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":1629,"mutability":"mutable","name":"amounts","nameLocation":"5567:7:10","nodeType":"VariableDeclaration","scope":1711,"src":"5548:26:10","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":1627,"name":"uint256","nodeType":"ElementaryTypeName","src":"5548:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1628,"nodeType":"ArrayTypeName","src":"5548:9:10","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"5466:115:10"},"returnParameters":{"id":1635,"nodeType":"ParameterList","parameters":[],"src":"5619:0:10"},"scope":1962,"src":"5435:616:10","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":1786,"nodeType":"Block","src":"6203:672:10","statements":[{"assignments":[1723],"declarations":[{"constant":false,"id":1723,"mutability":"mutable","name":"tokenContract","nameLocation":"6221:13:10","nodeType":"VariableDeclaration","scope":1786,"src":"6214:20:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$315","typeString":"contract IERC20"},"typeName":{"id":1722,"nodeType":"UserDefinedTypeName","pathNode":{"id":1721,"name":"IERC20","nameLocations":["6214:6:10"],"nodeType":"IdentifierPath","referencedDeclaration":315,"src":"6214:6:10"},"referencedDeclaration":315,"src":"6214:6:10","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$315","typeString":"contract IERC20"}},"visibility":"internal"}],"id":1727,"initialValue":{"arguments":[{"id":1725,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1714,"src":"6244:5:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":1724,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":315,"src":"6237:6:10","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC20_$315_$","typeString":"type(contract IERC20)"}},"id":1726,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6237:13:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$315","typeString":"contract IERC20"}},"nodeType":"VariableDeclarationStatement","src":"6214:36:10"},{"assignments":[1729],"declarations":[{"constant":false,"id":1729,"mutability":"mutable","name":"allowance","nameLocation":"6307:9:10","nodeType":"VariableDeclaration","scope":1786,"src":"6299:17:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1728,"name":"uint256","nodeType":"ElementaryTypeName","src":"6299:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1738,"initialValue":{"arguments":[{"id":1732,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1716,"src":"6343:4:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":1735,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"6357:4:10","typeDescriptions":{"typeIdentifier":"t_contract$_TokenCollector_$1962","typeString":"contract TokenCollector"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_TokenCollector_$1962","typeString":"contract TokenCollector"}],"id":1734,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6349:7:10","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1733,"name":"address","nodeType":"ElementaryTypeName","src":"6349:7:10","typeDescriptions":{}}},"id":1736,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6349:13:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":1730,"name":"tokenContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1723,"src":"6319:13:10","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$315","typeString":"contract IERC20"}},"id":1731,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6333:9:10","memberName":"allowance","nodeType":"MemberAccess","referencedDeclaration":292,"src":"6319:23:10","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$","typeString":"function (address,address) view external returns (uint256)"}},"id":1737,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6319:44:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6299:64:10"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1741,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1739,"name":"allowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1729,"src":"6378:9:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":1740,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1718,"src":"6390:6:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6378:18:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1749,"nodeType":"IfStatement","src":"6374:105:10","trueBody":{"id":1748,"nodeType":"Block","src":"6398:81:10","statements":[{"errorCall":{"arguments":[{"id":1743,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1714,"src":"6442:5:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1744,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1718,"src":"6449:6:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1745,"name":"allowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1729,"src":"6457:9:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1742,"name":"InsufficientAllowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1313,"src":"6420:21:10","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (address,uint256,uint256) pure"}},"id":1746,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6420:47:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1747,"nodeType":"RevertStatement","src":"6413:54:10"}]}},{"assignments":[1751],"declarations":[{"constant":false,"id":1751,"mutability":"mutable","name":"balance","nameLocation":"6525:7:10","nodeType":"VariableDeclaration","scope":1786,"src":"6517:15:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1750,"name":"uint256","nodeType":"ElementaryTypeName","src":"6517:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1756,"initialValue":{"arguments":[{"id":1754,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1716,"src":"6559:4:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":1752,"name":"tokenContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1723,"src":"6535:13:10","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$315","typeString":"contract IERC20"}},"id":1753,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6549:9:10","memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":272,"src":"6535:23:10","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":1755,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6535:29:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6517:47:10"},{"assignments":[1758],"declarations":[{"constant":false,"id":1758,"mutability":"mutable","name":"transferAmount","nameLocation":"6583:14:10","nodeType":"VariableDeclaration","scope":1786,"src":"6575:22:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1757,"name":"uint256","nodeType":"ElementaryTypeName","src":"6575:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1765,"initialValue":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1761,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1759,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1718,"src":"6600:6:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":1760,"name":"balance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1751,"src":"6609:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6600:16:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"id":1763,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1718,"src":"6629:6:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1764,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"6600:35:10","trueExpression":{"id":1762,"name":"balance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1751,"src":"6619:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6575:60:10"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1768,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1766,"name":"transferAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1758,"src":"6652:14:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":1767,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6669:1:10","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"6652:18:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1785,"nodeType":"IfStatement","src":"6648:220:10","trueBody":{"id":1784,"nodeType":"Block","src":"6672:196:10","statements":[{"expression":{"arguments":[{"id":1772,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1716,"src":"6751:4:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1773,"name":"recipient","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1265,"src":"6757:9:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1774,"name":"transferAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1758,"src":"6768:14:10","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":1769,"name":"tokenContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1723,"src":"6720:13:10","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$315","typeString":"contract IERC20"}},"id":1771,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6734:16:10","memberName":"safeTransferFrom","nodeType":"MemberAccess","referencedDeclaration":387,"src":"6720:30:10","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_IERC20_$315_$_t_address_$_t_address_$_t_uint256_$returns$__$attached_to$_t_contract$_IERC20_$315_$","typeString":"function (contract IERC20,address,address,uint256)"}},"id":1775,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6720:63:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1776,"nodeType":"ExpressionStatement","src":"6720:63:10"},{"eventCall":{"arguments":[{"id":1778,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1714,"src":"6817:5:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1779,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1716,"src":"6824:4:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1780,"name":"recipient","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1265,"src":"6830:9:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1781,"name":"transferAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1758,"src":"6841:14:10","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":1777,"name":"TokensClaimed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1291,"src":"6803:13:10","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,address,uint256)"}},"id":1782,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6803:53:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1783,"nodeType":"EmitStatement","src":"6798:58:10"}]}}]},"documentation":{"id":1712,"nodeType":"StructuredDocumentation","src":"6059:63:10","text":" @notice Internal function to claim a token"},"id":1787,"implemented":true,"kind":"function","modifiers":[],"name":"_claimToken","nameLocation":"6137:11:10","nodeType":"FunctionDefinition","parameters":{"id":1719,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1714,"mutability":"mutable","name":"token","nameLocation":"6157:5:10","nodeType":"VariableDeclaration","scope":1787,"src":"6149:13:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1713,"name":"address","nodeType":"ElementaryTypeName","src":"6149:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1716,"mutability":"mutable","name":"from","nameLocation":"6172:4:10","nodeType":"VariableDeclaration","scope":1787,"src":"6164:12:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1715,"name":"address","nodeType":"ElementaryTypeName","src":"6164:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1718,"mutability":"mutable","name":"amount","nameLocation":"6186:6:10","nodeType":"VariableDeclaration","scope":1787,"src":"6178:14:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1717,"name":"uint256","nodeType":"ElementaryTypeName","src":"6178:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6148:45:10"},"returnParameters":{"id":1720,"nodeType":"ParameterList","parameters":[],"src":"6203:0:10"},"scope":1962,"src":"6128:747:10","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":1840,"nodeType":"Block","src":"7265:254:10","statements":[{"expression":{"id":1806,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1799,"name":"allowances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1797,"src":"7276:10:10","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"id":1803,"name":"tokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1791,"src":"7303:6:10","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":1804,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7310:6:10","memberName":"length","nodeType":"MemberAccess","src":"7303:13:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1802,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"7289:13:10","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":1800,"name":"uint256","nodeType":"ElementaryTypeName","src":"7293:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1801,"nodeType":"ArrayTypeName","src":"7293:9:10","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}}},"id":1805,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7289:28:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"src":"7276:41:10","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":1807,"nodeType":"ExpressionStatement","src":"7276:41:10"},{"body":{"id":1836,"nodeType":"Block","src":"7382:92:10","statements":[{"expression":{"id":1834,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":1819,"name":"allowances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1797,"src":"7397:10:10","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":1821,"indexExpression":{"id":1820,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1809,"src":"7408:1:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"7397:13:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":1828,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1793,"src":"7441:5:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":1831,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"7456:4:10","typeDescriptions":{"typeIdentifier":"t_contract$_TokenCollector_$1962","typeString":"contract TokenCollector"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_TokenCollector_$1962","typeString":"contract TokenCollector"}],"id":1830,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7448:7:10","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1829,"name":"address","nodeType":"ElementaryTypeName","src":"7448:7:10","typeDescriptions":{}}},"id":1832,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7448:13:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[{"baseExpression":{"id":1823,"name":"tokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1791,"src":"7420:6:10","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":1825,"indexExpression":{"id":1824,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1809,"src":"7427:1:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7420:9:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":1822,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":315,"src":"7413:6:10","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC20_$315_$","typeString":"type(contract IERC20)"}},"id":1826,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7413:17:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$315","typeString":"contract IERC20"}},"id":1827,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7431:9:10","memberName":"allowance","nodeType":"MemberAccess","referencedDeclaration":292,"src":"7413:27:10","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$","typeString":"function (address,address) view external returns (uint256)"}},"id":1833,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7413:49:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7397:65:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1835,"nodeType":"ExpressionStatement","src":"7397:65:10"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1815,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1812,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1809,"src":"7358:1:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":1813,"name":"tokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1791,"src":"7362:6:10","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":1814,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7369:6:10","memberName":"length","nodeType":"MemberAccess","src":"7362:13:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7358:17:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1837,"initializationExpression":{"assignments":[1809],"declarations":[{"constant":false,"id":1809,"mutability":"mutable","name":"i","nameLocation":"7351:1:10","nodeType":"VariableDeclaration","scope":1837,"src":"7343:9:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1808,"name":"uint256","nodeType":"ElementaryTypeName","src":"7343:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1811,"initialValue":{"hexValue":"30","id":1810,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7355:1:10","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"7343:13:10"},"loopExpression":{"expression":{"id":1817,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"7377:3:10","subExpression":{"id":1816,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1809,"src":"7377:1:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1818,"nodeType":"ExpressionStatement","src":"7377:3:10"},"nodeType":"ForStatement","src":"7338:136:10"},{"expression":{"id":1838,"name":"allowances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1797,"src":"7501:10:10","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"functionReturnParameters":1798,"id":1839,"nodeType":"Return","src":"7494:17:10"}]},"documentation":{"id":1788,"nodeType":"StructuredDocumentation","src":"6883:232:10","text":" @notice Check allowances for multiple tokens from a specific owner\n @param tokens Array of token addresses\n @param owner Address of token owner\n @return allowances Array of allowance amounts"},"functionSelector":"4c8e3948","id":1841,"implemented":true,"kind":"function","modifiers":[],"name":"checkAllowances","nameLocation":"7130:15:10","nodeType":"FunctionDefinition","parameters":{"id":1794,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1791,"mutability":"mutable","name":"tokens","nameLocation":"7175:6:10","nodeType":"VariableDeclaration","scope":1841,"src":"7156:25:10","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":1789,"name":"address","nodeType":"ElementaryTypeName","src":"7156:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":1790,"nodeType":"ArrayTypeName","src":"7156:9:10","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":1793,"mutability":"mutable","name":"owner","nameLocation":"7200:5:10","nodeType":"VariableDeclaration","scope":1841,"src":"7192:13:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1792,"name":"address","nodeType":"ElementaryTypeName","src":"7192:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"7145:67:10"},"returnParameters":{"id":1798,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1797,"mutability":"mutable","name":"allowances","nameLocation":"7253:10:10","nodeType":"VariableDeclaration","scope":1841,"src":"7236:27:10","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":1795,"name":"uint256","nodeType":"ElementaryTypeName","src":"7236:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1796,"nodeType":"ArrayTypeName","src":"7236:9:10","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"7235:29:10"},"scope":1962,"src":"7121:398:10","stateMutability":"view","virtual":false,"visibility":"external"},{"body":{"id":1890,"nodeType":"Block","src":"7877:233:10","statements":[{"expression":{"id":1860,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1853,"name":"balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1851,"src":"7888:8:10","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"id":1857,"name":"tokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1845,"src":"7913:6:10","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":1858,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7920:6:10","memberName":"length","nodeType":"MemberAccess","src":"7913:13:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1856,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"7899:13:10","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":1854,"name":"uint256","nodeType":"ElementaryTypeName","src":"7903:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1855,"nodeType":"ArrayTypeName","src":"7903:9:10","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}}},"id":1859,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7899:28:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"src":"7888:39:10","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":1861,"nodeType":"ExpressionStatement","src":"7888:39:10"},{"body":{"id":1886,"nodeType":"Block","src":"7992:75:10","statements":[{"expression":{"id":1884,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":1873,"name":"balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1851,"src":"8007:8:10","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":1875,"indexExpression":{"id":1874,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1863,"src":"8016:1:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"8007:11:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":1882,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1847,"src":"8049:5:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[{"baseExpression":{"id":1877,"name":"tokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1845,"src":"8028:6:10","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":1879,"indexExpression":{"id":1878,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1863,"src":"8035:1:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8028:9:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":1876,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":315,"src":"8021:6:10","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC20_$315_$","typeString":"type(contract IERC20)"}},"id":1880,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8021:17:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$315","typeString":"contract IERC20"}},"id":1881,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8039:9:10","memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":272,"src":"8021:27:10","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":1883,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8021:34:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8007:48:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1885,"nodeType":"ExpressionStatement","src":"8007:48:10"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1869,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1866,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1863,"src":"7968:1:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":1867,"name":"tokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1845,"src":"7972:6:10","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":1868,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7979:6:10","memberName":"length","nodeType":"MemberAccess","src":"7972:13:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7968:17:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1887,"initializationExpression":{"assignments":[1863],"declarations":[{"constant":false,"id":1863,"mutability":"mutable","name":"i","nameLocation":"7961:1:10","nodeType":"VariableDeclaration","scope":1887,"src":"7953:9:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1862,"name":"uint256","nodeType":"ElementaryTypeName","src":"7953:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1865,"initialValue":{"hexValue":"30","id":1864,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7965:1:10","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"7953:13:10"},"loopExpression":{"expression":{"id":1871,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"7987:3:10","subExpression":{"id":1870,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1863,"src":"7987:1:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1872,"nodeType":"ExpressionStatement","src":"7987:3:10"},"nodeType":"ForStatement","src":"7948:119:10"},{"expression":{"id":1888,"name":"balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1851,"src":"8094:8:10","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"functionReturnParameters":1852,"id":1889,"nodeType":"Return","src":"8087:15:10"}]},"documentation":{"id":1842,"nodeType":"StructuredDocumentation","src":"7527:204:10","text":" @notice Check balances for multiple tokens\n @param tokens Array of token addresses\n @param owner Address of token owner\n @return balances Array of balance amounts"},"functionSelector":"322eb93a","id":1891,"implemented":true,"kind":"function","modifiers":[],"name":"checkBalances","nameLocation":"7746:13:10","nodeType":"FunctionDefinition","parameters":{"id":1848,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1845,"mutability":"mutable","name":"tokens","nameLocation":"7789:6:10","nodeType":"VariableDeclaration","scope":1891,"src":"7770:25:10","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":1843,"name":"address","nodeType":"ElementaryTypeName","src":"7770:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":1844,"nodeType":"ArrayTypeName","src":"7770:9:10","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":1847,"mutability":"mutable","name":"owner","nameLocation":"7814:5:10","nodeType":"VariableDeclaration","scope":1891,"src":"7806:13:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1846,"name":"address","nodeType":"ElementaryTypeName","src":"7806:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"7759:67:10"},"returnParameters":{"id":1852,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1851,"mutability":"mutable","name":"balances","nameLocation":"7867:8:10","nodeType":"VariableDeclaration","scope":1891,"src":"7850:25:10","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":1849,"name":"uint256","nodeType":"ElementaryTypeName","src":"7850:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1850,"nodeType":"ArrayTypeName","src":"7850:9:10","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"7849:27:10"},"scope":1962,"src":"7737:373:10","stateMutability":"view","virtual":false,"visibility":"external"},{"body":{"id":1928,"nodeType":"Block","src":"8319:222:10","statements":[{"assignments":[1901],"declarations":[{"constant":false,"id":1901,"mutability":"mutable","name":"tokenContract","nameLocation":"8337:13:10","nodeType":"VariableDeclaration","scope":1928,"src":"8330:20:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$315","typeString":"contract IERC20"},"typeName":{"id":1900,"nodeType":"UserDefinedTypeName","pathNode":{"id":1899,"name":"IERC20","nameLocations":["8330:6:10"],"nodeType":"IdentifierPath","referencedDeclaration":315,"src":"8330:6:10"},"referencedDeclaration":315,"src":"8330:6:10","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$315","typeString":"contract IERC20"}},"visibility":"internal"}],"id":1905,"initialValue":{"arguments":[{"id":1903,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1894,"src":"8360:5:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":1902,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":315,"src":"8353:6:10","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC20_$315_$","typeString":"type(contract IERC20)"}},"id":1904,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8353:13:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$315","typeString":"contract IERC20"}},"nodeType":"VariableDeclarationStatement","src":"8330:36:10"},{"assignments":[1907],"declarations":[{"constant":false,"id":1907,"mutability":"mutable","name":"balance","nameLocation":"8385:7:10","nodeType":"VariableDeclaration","scope":1928,"src":"8377:15:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1906,"name":"uint256","nodeType":"ElementaryTypeName","src":"8377:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1915,"initialValue":{"arguments":[{"arguments":[{"id":1912,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"8427:4:10","typeDescriptions":{"typeIdentifier":"t_contract$_TokenCollector_$1962","typeString":"contract TokenCollector"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_TokenCollector_$1962","typeString":"contract TokenCollector"}],"id":1911,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8419:7:10","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1910,"name":"address","nodeType":"ElementaryTypeName","src":"8419:7:10","typeDescriptions":{}}},"id":1913,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8419:13:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":1908,"name":"tokenContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1901,"src":"8395:13:10","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$315","typeString":"contract IERC20"}},"id":1909,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8409:9:10","memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":272,"src":"8395:23:10","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":1914,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8395:38:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"8377:56:10"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1918,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1916,"name":"balance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1907,"src":"8448:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":1917,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8458:1:10","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"8448:11:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1927,"nodeType":"IfStatement","src":"8444:90:10","trueBody":{"id":1926,"nodeType":"Block","src":"8461:73:10","statements":[{"expression":{"arguments":[{"id":1922,"name":"recipient","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1265,"src":"8503:9:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1923,"name":"balance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1907,"src":"8514:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":1919,"name":"tokenContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1901,"src":"8476:13:10","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$315","typeString":"contract IERC20"}},"id":1921,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8490:12:10","memberName":"safeTransfer","nodeType":"MemberAccess","referencedDeclaration":360,"src":"8476:26:10","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_IERC20_$315_$_t_address_$_t_uint256_$returns$__$attached_to$_t_contract$_IERC20_$315_$","typeString":"function (contract IERC20,address,uint256)"}},"id":1924,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8476:46:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1925,"nodeType":"ExpressionStatement","src":"8476:46:10"}]}}]},"documentation":{"id":1892,"nodeType":"StructuredDocumentation","src":"8118:134:10","text":" @notice Emergency withdraw any ERC20 tokens stuck in this contract\n @param token Token address to withdraw"},"functionSelector":"6ff1c9bc","id":1929,"implemented":true,"kind":"function","modifiers":[{"id":1897,"kind":"modifierInvocation","modifierName":{"id":1896,"name":"onlyOwner","nameLocations":["8309:9:10"],"nodeType":"IdentifierPath","referencedDeclaration":58,"src":"8309:9:10"},"nodeType":"ModifierInvocation","src":"8309:9:10"}],"name":"emergencyWithdraw","nameLocation":"8267:17:10","nodeType":"FunctionDefinition","parameters":{"id":1895,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1894,"mutability":"mutable","name":"token","nameLocation":"8293:5:10","nodeType":"VariableDeclaration","scope":1929,"src":"8285:13:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1893,"name":"address","nodeType":"ElementaryTypeName","src":"8285:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"8284:15:10"},"returnParameters":{"id":1898,"nodeType":"ParameterList","parameters":[],"src":"8319:0:10"},"scope":1962,"src":"8258:283:10","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":1956,"nodeType":"Block","src":"8680:148:10","statements":[{"assignments":[1936],"declarations":[{"constant":false,"id":1936,"mutability":"mutable","name":"balance","nameLocation":"8699:7:10","nodeType":"VariableDeclaration","scope":1956,"src":"8691:15:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1935,"name":"uint256","nodeType":"ElementaryTypeName","src":"8691:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1942,"initialValue":{"expression":{"arguments":[{"id":1939,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"8717:4:10","typeDescriptions":{"typeIdentifier":"t_contract$_TokenCollector_$1962","typeString":"contract TokenCollector"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_TokenCollector_$1962","typeString":"contract TokenCollector"}],"id":1938,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8709:7:10","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1937,"name":"address","nodeType":"ElementaryTypeName","src":"8709:7:10","typeDescriptions":{}}},"id":1940,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8709:13:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":1941,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8723:7:10","memberName":"balance","nodeType":"MemberAccess","src":"8709:21:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"8691:39:10"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1945,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1943,"name":"balance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1936,"src":"8745:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":1944,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8755:1:10","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"8745:11:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1955,"nodeType":"IfStatement","src":"8741:80:10","trueBody":{"id":1954,"nodeType":"Block","src":"8758:63:10","statements":[{"expression":{"arguments":[{"id":1951,"name":"balance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1936,"src":"8801:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":1948,"name":"recipient","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1265,"src":"8781:9:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":1947,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8773:8:10","typeDescriptions":{"typeIdentifier":"t_type$_t_address_payable_$","typeString":"type(address payable)"},"typeName":{"id":1946,"name":"address","nodeType":"ElementaryTypeName","src":"8773:8:10","stateMutability":"payable","typeDescriptions":{}}},"id":1949,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8773:18:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":1950,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8792:8:10","memberName":"transfer","nodeType":"MemberAccess","src":"8773:27:10","typeDescriptions":{"typeIdentifier":"t_function_transfer_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":1952,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8773:36:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1953,"nodeType":"ExpressionStatement","src":"8773:36:10"}]}}]},"documentation":{"id":1930,"nodeType":"StructuredDocumentation","src":"8549:74:10","text":" @notice Emergency withdraw ETH stuck in this contract"},"functionSelector":"84536017","id":1957,"implemented":true,"kind":"function","modifiers":[{"id":1933,"kind":"modifierInvocation","modifierName":{"id":1932,"name":"onlyOwner","nameLocations":["8670:9:10"],"nodeType":"IdentifierPath","referencedDeclaration":58,"src":"8670:9:10"},"nodeType":"ModifierInvocation","src":"8670:9:10"}],"name":"emergencyWithdrawETH","nameLocation":"8638:20:10","nodeType":"FunctionDefinition","parameters":{"id":1931,"nodeType":"ParameterList","parameters":[],"src":"8658:2:10"},"returnParameters":{"id":1934,"nodeType":"ParameterList","parameters":[],"src":"8680:0:10"},"scope":1962,"src":"8629:199:10","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":1960,"nodeType":"Block","src":"8901:2:10","statements":[]},"id":1961,"implemented":true,"kind":"receive","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":1958,"nodeType":"ParameterList","parameters":[],"src":"8881:2:10"},"returnParameters":{"id":1959,"nodeType":"ParameterList","parameters":[],"src":"8901:0:10"},"scope":1962,"src":"8874:29:10","stateMutability":"payable","virtual":false,"visibility":"external"}],"scope":1963,"src":"714:8192:10","usedErrors":[13,18,327,823,1303,1305,1313,1315,1317,1319],"usedEvents":[24,1275,1281,1291,1301]}],"src":"33:8875:10"},"id":10}},"contracts":{"@openzeppelin/contracts/access/Ownable.sol":{"Ownable":{"abi":[{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"OwnableInvalidOwner","type":"error"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"OwnableUnauthorizedAccount","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"owner()":"8da5cb5b","renounceOwnership()":"715018a6","transferOwnership(address)":"f2fde38b"}},"metadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"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. The initial owner is set to the address provided by the deployer. 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.\",\"errors\":{\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}]},\"kind\":\"dev\",\"methods\":{\"constructor\":{\"details\":\"Initializes the contract setting the address provided by the deployer as the initial owner.\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/access/Ownable.sol\":\"Ownable\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]}},\"version\":1}"}},"@openzeppelin/contracts/interfaces/IERC1363.sol":{"IERC1363":{"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":"value","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"approveAndCall","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"approveAndCall","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"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":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"transferAndCall","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"transferAndCall","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"transferFromAndCall","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"transferFromAndCall","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","approveAndCall(address,uint256)":"3177029f","approveAndCall(address,uint256,bytes)":"cae9ca51","balanceOf(address)":"70a08231","supportsInterface(bytes4)":"01ffc9a7","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferAndCall(address,uint256)":"1296ee62","transferAndCall(address,uint256,bytes)":"4000aea0","transferFrom(address,address,uint256)":"23b872dd","transferFromAndCall(address,address,uint256)":"d8fbe994","transferFromAndCall(address,address,uint256,bytes)":"c1d34b89"}},"metadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"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\":\"value\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"approveAndCall\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"approveAndCall\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"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\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transferAndCall\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"transferAndCall\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"transferFromAndCall\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transferFromAndCall\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Interface of the ERC-1363 standard as defined in the https://eips.ethereum.org/EIPS/eip-1363[ERC-1363]. Defines an extension interface for ERC-20 tokens that supports executing code on a recipient contract after `transfer` or `transferFrom`, or code on a spender contract after `approve`, in a single transaction.\",\"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 a `value` amount of tokens 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.\"},\"approveAndCall(address,uint256)\":{\"details\":\"Sets a `value` amount of tokens as the allowance of `spender` over the caller's tokens and then calls {IERC1363Spender-onApprovalReceived} on `spender`.\",\"params\":{\"spender\":\"The address which will spend the funds.\",\"value\":\"The amount of tokens to be spent.\"},\"returns\":{\"_0\":\"A boolean value indicating whether the operation succeeded unless throwing.\"}},\"approveAndCall(address,uint256,bytes)\":{\"details\":\"Sets a `value` amount of tokens as the allowance of `spender` over the caller's tokens and then calls {IERC1363Spender-onApprovalReceived} on `spender`.\",\"params\":{\"data\":\"Additional data with no specified format, sent in call to `spender`.\",\"spender\":\"The address which will spend the funds.\",\"value\":\"The amount of tokens to be spent.\"},\"returns\":{\"_0\":\"A boolean value indicating whether the operation succeeded unless throwing.\"}},\"balanceOf(address)\":{\"details\":\"Returns the value of tokens owned by `account`.\"},\"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[ERC section] to learn more about how these ids are created. This function call must use less than 30 000 gas.\"},\"totalSupply()\":{\"details\":\"Returns the value of tokens in existence.\"},\"transfer(address,uint256)\":{\"details\":\"Moves a `value` amount of tokens from the caller's account to `to`. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event.\"},\"transferAndCall(address,uint256)\":{\"details\":\"Moves a `value` amount of tokens from the caller's account to `to` and then calls {IERC1363Receiver-onTransferReceived} on `to`.\",\"params\":{\"to\":\"The address which you want to transfer to.\",\"value\":\"The amount of tokens to be transferred.\"},\"returns\":{\"_0\":\"A boolean value indicating whether the operation succeeded unless throwing.\"}},\"transferAndCall(address,uint256,bytes)\":{\"details\":\"Moves a `value` amount of tokens from the caller's account to `to` and then calls {IERC1363Receiver-onTransferReceived} on `to`.\",\"params\":{\"data\":\"Additional data with no specified format, sent in call to `to`.\",\"to\":\"The address which you want to transfer to.\",\"value\":\"The amount of tokens to be transferred.\"},\"returns\":{\"_0\":\"A boolean value indicating whether the operation succeeded unless throwing.\"}},\"transferFrom(address,address,uint256)\":{\"details\":\"Moves a `value` amount of tokens from `from` to `to` using the allowance mechanism. `value` is then deducted from the caller's allowance. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event.\"},\"transferFromAndCall(address,address,uint256)\":{\"details\":\"Moves a `value` amount of tokens from `from` to `to` using the allowance mechanism and then calls {IERC1363Receiver-onTransferReceived} on `to`.\",\"params\":{\"from\":\"The address which you want to send tokens from.\",\"to\":\"The address which you want to transfer to.\",\"value\":\"The amount of tokens to be transferred.\"},\"returns\":{\"_0\":\"A boolean value indicating whether the operation succeeded unless throwing.\"}},\"transferFromAndCall(address,address,uint256,bytes)\":{\"details\":\"Moves a `value` amount of tokens from `from` to `to` using the allowance mechanism and then calls {IERC1363Receiver-onTransferReceived} on `to`.\",\"params\":{\"data\":\"Additional data with no specified format, sent in call to `to`.\",\"from\":\"The address which you want to send tokens from.\",\"to\":\"The address which you want to transfer to.\",\"value\":\"The amount of tokens to be transferred.\"},\"returns\":{\"_0\":\"A boolean value indicating whether the operation succeeded unless throwing.\"}}},\"title\":\"IERC1363\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/interfaces/IERC1363.sol\":\"IERC1363\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/interfaces/IERC1363.sol\":{\"keccak256\":\"0xd5ea07362ab630a6a3dee4285a74cf2377044ca2e4be472755ad64d7c5d4b69d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://da5e832b40fc5c3145d3781e2e5fa60ac2052c9d08af7e300dc8ab80c4343100\",\"dweb:/ipfs/QmTzf7N5ZUdh5raqtzbM11yexiUoLC9z3Ws632MCuycq1d\"]},\"@openzeppelin/contracts/interfaces/IERC165.sol\":{\"keccak256\":\"0x0afcb7e740d1537b252cb2676f600465ce6938398569f09ba1b9ca240dde2dfc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1c299900ac4ec268d4570ecef0d697a3013cd11a6eb74e295ee3fbc945056037\",\"dweb:/ipfs/Qmab9owJoxcA7vJT5XNayCMaUR1qxqj1NDzzisduwaJMcZ\"]},\"@openzeppelin/contracts/interfaces/IERC20.sol\":{\"keccak256\":\"0x1a6221315ce0307746c2c4827c125d821ee796c74a676787762f4778671d4f44\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1bb2332a7ee26dd0b0de9b7fe266749f54820c99ab6a3bcb6f7e6b751d47ee2d\",\"dweb:/ipfs/QmcRWpaBeCYkhy68PR3B4AgD7asuQk7PwkWxrvJbZcikLF\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x74ed01eb66b923d0d0cfe3be84604ac04b76482a55f9dd655e1ef4d367f95bc2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5282825a626cfe924e504274b864a652b0023591fa66f06a067b25b51ba9b303\",\"dweb:/ipfs/QmeCfPykghhMc81VJTrHTC7sF6CRvaA1FXVq2pJhwYp1dV\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x8891738ffe910f0cf2da09566928589bf5d63f4524dd734fd9cedbac3274dd5c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://971f954442df5c2ef5b5ebf1eb245d7105d9fbacc7386ee5c796df1d45b21617\",\"dweb:/ipfs/QmadRjHbkicwqwwh61raUEapaVEtaLMcYbQZWs9gUkgj3u\"]}},\"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":"value","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"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.20+commit.a1b79de6\"},\"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\":\"value\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Interface of the ERC-20 standard as defined in the ERC.\",\"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 a `value` amount of tokens 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 value of tokens owned by `account`.\"},\"totalSupply()\":{\"details\":\"Returns the value of tokens in existence.\"},\"transfer(address,uint256)\":{\"details\":\"Moves a `value` amount of 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 a `value` amount of tokens from `from` to `to` using the allowance mechanism. `value` is then deducted from the caller's allowance. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":\"IERC20\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x74ed01eb66b923d0d0cfe3be84604ac04b76482a55f9dd655e1ef4d367f95bc2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5282825a626cfe924e504274b864a652b0023591fa66f06a067b25b51ba9b303\",\"dweb:/ipfs/QmeCfPykghhMc81VJTrHTC7sF6CRvaA1FXVq2pJhwYp1dV\"]}},\"version\":1}"}},"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol":{"SafeERC20":{"abi":[{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"currentAllowance","type":"uint256"},{"internalType":"uint256","name":"requestedDecrease","type":"uint256"}],"name":"SafeERC20FailedDecreaseAllowance","type":"error"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"name":"SafeERC20FailedOperation","type":"error"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"60566050600b82828239805160001a6073146043577f4e487b7100000000000000000000000000000000000000000000000000000000600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220f1d06bf12875f252b400c9b3006def16eeb07c1c212ca46e924afe533f9a46da64736f6c63430008140033","opcodes":"PUSH1 0x56 PUSH1 0x50 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x43 JUMPI PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 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 CALL 0xD0 PUSH12 0xF12875F252B400C9B3006DEF AND 0xEE 0xB0 PUSH29 0x1C212CA46E924AFE533F9A46DA64736F6C634300081400330000000000 ","sourceMap":"698:9376:5:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220f1d06bf12875f252b400c9b3006def16eeb07c1c212ca46e924afe533f9a46da64736f6c63430008140033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 CALL 0xD0 PUSH12 0xF12875F252B400C9B3006DEF AND 0xEE 0xB0 PUSH29 0x1C212CA46E924AFE533F9A46DA64736F6C634300081400330000000000 ","sourceMap":"698:9376:5:-:0;;;;;;;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"currentAllowance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"requestedDecrease\",\"type\":\"uint256\"}],\"name\":\"SafeERC20FailedDecreaseAllowance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"SafeERC20FailedOperation\",\"type\":\"error\"}],\"devdoc\":{\"details\":\"Wrappers around ERC-20 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.\",\"errors\":{\"SafeERC20FailedDecreaseAllowance(address,uint256,uint256)\":[{\"details\":\"Indicates a failed `decreaseAllowance` request.\"}],\"SafeERC20FailedOperation(address)\":[{\"details\":\"An operation with an ERC-20 token failed.\"}]},\"kind\":\"dev\",\"methods\":{},\"title\":\"SafeERC20\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":\"SafeERC20\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/interfaces/IERC1363.sol\":{\"keccak256\":\"0xd5ea07362ab630a6a3dee4285a74cf2377044ca2e4be472755ad64d7c5d4b69d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://da5e832b40fc5c3145d3781e2e5fa60ac2052c9d08af7e300dc8ab80c4343100\",\"dweb:/ipfs/QmTzf7N5ZUdh5raqtzbM11yexiUoLC9z3Ws632MCuycq1d\"]},\"@openzeppelin/contracts/interfaces/IERC165.sol\":{\"keccak256\":\"0x0afcb7e740d1537b252cb2676f600465ce6938398569f09ba1b9ca240dde2dfc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1c299900ac4ec268d4570ecef0d697a3013cd11a6eb74e295ee3fbc945056037\",\"dweb:/ipfs/Qmab9owJoxcA7vJT5XNayCMaUR1qxqj1NDzzisduwaJMcZ\"]},\"@openzeppelin/contracts/interfaces/IERC20.sol\":{\"keccak256\":\"0x1a6221315ce0307746c2c4827c125d821ee796c74a676787762f4778671d4f44\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1bb2332a7ee26dd0b0de9b7fe266749f54820c99ab6a3bcb6f7e6b751d47ee2d\",\"dweb:/ipfs/QmcRWpaBeCYkhy68PR3B4AgD7asuQk7PwkWxrvJbZcikLF\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x74ed01eb66b923d0d0cfe3be84604ac04b76482a55f9dd655e1ef4d367f95bc2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5282825a626cfe924e504274b864a652b0023591fa66f06a067b25b51ba9b303\",\"dweb:/ipfs/QmeCfPykghhMc81VJTrHTC7sF6CRvaA1FXVq2pJhwYp1dV\"]},\"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x982c5cb790ab941d1e04f807120a71709d4c313ba0bfc16006447ffbd27fbbd5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8150ceb4ac947e8a442b2a9c017e01e880b2be2dd958f1fa9bc405f4c5a86508\",\"dweb:/ipfs/QmbcBmFX66AY6Kbhnd5gx7zpkgqnUafo43XnmayAM7zVdB\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x8891738ffe910f0cf2da09566928589bf5d63f4524dd734fd9cedbac3274dd5c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://971f954442df5c2ef5b5ebf1eb245d7105d9fbacc7386ee5c796df1d45b21617\",\"dweb:/ipfs/QmadRjHbkicwqwwh61raUEapaVEtaLMcYbQZWs9gUkgj3u\"]}},\"version\":1}"}},"@openzeppelin/contracts/utils/Context.sol":{"Context":{"abi":[],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Provides information about the current execution context, including the sender of the transaction and its data. While these are generally available via msg.sender and msg.data, they should not be accessed in such a direct manner, since when dealing with meta-transactions the account sending and paying for execution may not be the actual sender (as far as an application is concerned). This contract is only required for intermediate, library-like contracts.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/Context.sol\":\"Context\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]}},\"version\":1}"}},"@openzeppelin/contracts/utils/ReentrancyGuard.sol":{"ReentrancyGuard":{"abi":[{"inputs":[],"name":"ReentrancyGuardReentrantCall","type":"error"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"ReentrancyGuardReentrantCall\",\"type\":\"error\"}],\"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 EIP-1153 (transient storage) is available on the chain you're deploying at, consider using {ReentrancyGuardTransient} instead. 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].\",\"errors\":{\"ReentrancyGuardReentrantCall()\":[{\"details\":\"Unauthorized reentrant call.\"}]},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/ReentrancyGuard.sol\":\"ReentrancyGuard\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/ReentrancyGuard.sol\":{\"keccak256\":\"0x11a5a79827df29e915a12740caf62fe21ebe27c08c9ae3e09abe9ee3ba3866d3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3cf0c69ab827e3251db9ee6a50647d62c90ba580a4d7bbff21f2bea39e7b2f4a\",\"dweb:/ipfs/QmZiKwtKU1SBX4RGfQtY7PZfiapbbu6SZ9vizGQD9UHjRA\"]}},\"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":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"supportsInterface(bytes4)":"01ffc9a7"}},"metadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"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 ERC-165 standard, as defined in the https://eips.ethereum.org/EIPS/eip-165[ERC]. 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[ERC section] to learn more about how these ids are created. This function call must use less than 30 000 gas.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":\"IERC165\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x8891738ffe910f0cf2da09566928589bf5d63f4524dd734fd9cedbac3274dd5c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://971f954442df5c2ef5b5ebf1eb245d7105d9fbacc7386ee5c796df1d45b21617\",\"dweb:/ipfs/QmadRjHbkicwqwwh61raUEapaVEtaLMcYbQZWs9gUkgj3u\"]}},\"version\":1}"}},"contracts/BatchTransfer.sol":{"BatchTransfer":{"abi":[{"inputs":[],"name":"ReentrancyGuardReentrantCall","type":"error"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"name":"SafeERC20FailedOperation","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"tokenCount","type":"uint256"}],"name":"BatchTransferCompleted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"token","type":"address"},{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"TokenTransferred","type":"event"},{"inputs":[{"internalType":"address[]","name":"tokens","type":"address[]"},{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"name":"batchTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"tokens","type":"address[]"},{"internalType":"address","name":"owner","type":"address"}],"name":"checkAllowances","outputs":[{"internalType":"uint256[]","name":"allowances","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"tokens","type":"address[]"},{"internalType":"address","name":"owner","type":"address"}],"name":"checkBalances","outputs":[{"internalType":"uint256[]","name":"balances","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"singleTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{"@_831":{"entryPoint":null,"id":831,"parameterSlots":0,"returnSlots":0}},"generatedSources":[],"linkReferences":{},"object":"608060405234801561001057600080fd5b506001600081905550611501806100286000396000f3fe608060405234801561001057600080fd5b506004361061004c5760003560e01c8063322eb93a146100515780634c8e394814610081578063df904e33146100b1578063ee07c804146100cd575b600080fd5b61006b60048036038101906100669190610cf4565b6100e9565b6040516100789190610e1c565b60405180910390f35b61009b60048036038101906100969190610cf4565b610222565b6040516100a89190610e1c565b60405180910390f35b6100cb60048036038101906100c69190610e6a565b61035d565b005b6100e760048036038101906100e29190610f27565b610676565b005b60608383905067ffffffffffffffff81111561010857610107610fce565b5b6040519080825280602002602001820160405280156101365781602001602082028036833780820191505090505b50905060005b8484905081101561021a5784848281811061015a57610159610ffd565b5b905060200201602081019061016f919061102c565b73ffffffffffffffffffffffffffffffffffffffff166370a08231846040518263ffffffff1660e01b81526004016101a79190611068565b602060405180830381865afa1580156101c4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101e89190611098565b8282815181106101fb576101fa610ffd565b5b6020026020010181815250508080610212906110f4565b91505061013c565b509392505050565b60608383905067ffffffffffffffff81111561024157610240610fce565b5b60405190808252806020026020018201604052801561026f5781602001602082028036833780820191505090505b50905060005b848490508110156103555784848281811061029357610292610ffd565b5b90506020020160208101906102a8919061102c565b73ffffffffffffffffffffffffffffffffffffffff1663dd62ed3e84306040518363ffffffff1660e01b81526004016102e292919061113c565b602060405180830381865afa1580156102ff573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103239190611098565b82828151811061033657610335610ffd565b5b602002602001018181525050808061034d906110f4565b915050610275565b509392505050565b610365610ab3565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036103d4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103cb906111c2565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610443576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161043a9061122e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036104b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104a99061129a565b60405180910390fd5b600081116104f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104ec90611306565b60405180910390fd5b600084905060008173ffffffffffffffffffffffffffffffffffffffff1663dd62ed3e86306040518363ffffffff1660e01b815260040161053792919061113c565b602060405180830381865afa158015610554573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105789190611098565b9050828110156105bd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105b490611372565b60405180910390fd5b6105ea8585858573ffffffffffffffffffffffffffffffffffffffff16610af9909392919063ffffffff16565b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167f9af266b6ca4909f988dc948fb50ad15153abbe525351881bad4fa858be96515c8660405161065e91906113a1565b60405180910390a45050610670610b7b565b50505050565b61067e610ab3565b8181905086869050146106c6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106bd90611408565b60405180910390fd5b6000868690501161070c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161070390611474565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361077b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107729061122e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036107ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107e19061129a565b60405180910390fd5b60005b86869050811015610a3a57600083838381811061080d5761080c610ffd565b5b905060200201351115610a2757600087878381811061082f5761082e610ffd565b5b9050602002016020810190610844919061102c565b905060008173ffffffffffffffffffffffffffffffffffffffff1663dd62ed3e88306040518363ffffffff1660e01b815260040161088392919061113c565b602060405180830381865afa1580156108a0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108c49190611098565b90508484848181106108d9576108d8610ffd565b5b90506020020135811015610922576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161091990611372565b60405180910390fd5b610968878787878781811061093a57610939610ffd565b5b905060200201358573ffffffffffffffffffffffffffffffffffffffff16610af9909392919063ffffffff16565b8573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff168a8a868181106109a9576109a8610ffd565b5b90506020020160208101906109be919061102c565b73ffffffffffffffffffffffffffffffffffffffff167f9af266b6ca4909f988dc948fb50ad15153abbe525351881bad4fa858be96515c888888818110610a0857610a07610ffd565b5b90506020020135604051610a1c91906113a1565b60405180910390a450505b8080610a32906110f4565b9150506107ed565b508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fee33b49c2685af4719e7e52028345a4147b8df3070f604eed24da16954c07e1a88889050604051610a9b91906113a1565b60405180910390a3610aab610b7b565b505050505050565b600260005403610aef576040517f3ee5aeb500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6002600081905550565b610b75848573ffffffffffffffffffffffffffffffffffffffff166323b872dd868686604051602401610b2e93929190611494565b604051602081830303815290604052915060e01b6020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050610b85565b50505050565b6001600081905550565b600080602060008451602086016000885af180610ba8576040513d6000823e3d81fd5b3d925060005191505060008214610bc3576001811415610bdf565b60008473ffffffffffffffffffffffffffffffffffffffff163b145b15610c2157836040517f5274afe7000000000000000000000000000000000000000000000000000000008152600401610c189190611068565b60405180910390fd5b50505050565b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b60008083601f840112610c5657610c55610c31565b5b8235905067ffffffffffffffff811115610c7357610c72610c36565b5b602083019150836020820283011115610c8f57610c8e610c3b565b5b9250929050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610cc182610c96565b9050919050565b610cd181610cb6565b8114610cdc57600080fd5b50565b600081359050610cee81610cc8565b92915050565b600080600060408486031215610d0d57610d0c610c27565b5b600084013567ffffffffffffffff811115610d2b57610d2a610c2c565b5b610d3786828701610c40565b93509350506020610d4a86828701610cdf565b9150509250925092565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6000819050919050565b610d9381610d80565b82525050565b6000610da58383610d8a565b60208301905092915050565b6000602082019050919050565b6000610dc982610d54565b610dd38185610d5f565b9350610dde83610d70565b8060005b83811015610e0f578151610df68882610d99565b9750610e0183610db1565b925050600181019050610de2565b5085935050505092915050565b60006020820190508181036000830152610e368184610dbe565b905092915050565b610e4781610d80565b8114610e5257600080fd5b50565b600081359050610e6481610e3e565b92915050565b60008060008060808587031215610e8457610e83610c27565b5b6000610e9287828801610cdf565b9450506020610ea387828801610cdf565b9350506040610eb487828801610cdf565b9250506060610ec587828801610e55565b91505092959194509250565b60008083601f840112610ee757610ee6610c31565b5b8235905067ffffffffffffffff811115610f0457610f03610c36565b5b602083019150836020820283011115610f2057610f1f610c3b565b5b9250929050565b60008060008060008060808789031215610f4457610f43610c27565b5b600087013567ffffffffffffffff811115610f6257610f61610c2c565b5b610f6e89828a01610c40565b96509650506020610f8189828a01610cdf565b9450506040610f9289828a01610cdf565b935050606087013567ffffffffffffffff811115610fb357610fb2610c2c565b5b610fbf89828a01610ed1565b92509250509295509295509295565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60006020828403121561104257611041610c27565b5b600061105084828501610cdf565b91505092915050565b61106281610cb6565b82525050565b600060208201905061107d6000830184611059565b92915050565b60008151905061109281610e3e565b92915050565b6000602082840312156110ae576110ad610c27565b5b60006110bc84828501611083565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006110ff82610d80565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203611131576111306110c5565b5b600182019050919050565b60006040820190506111516000830185611059565b61115e6020830184611059565b9392505050565b600082825260208201905092915050565b7f496e76616c696420746f6b656e00000000000000000000000000000000000000600082015250565b60006111ac600d83611165565b91506111b782611176565b602082019050919050565b600060208201905081810360008301526111db8161119f565b9050919050565b7f496e76616c69642064657374696e6174696f6e00000000000000000000000000600082015250565b6000611218601383611165565b9150611223826111e2565b602082019050919050565b600060208201905081810360008301526112478161120b565b9050919050565b7f496e76616c696420736f75726365000000000000000000000000000000000000600082015250565b6000611284600e83611165565b915061128f8261124e565b602082019050919050565b600060208201905081810360008301526112b381611277565b9050919050565b7f416d6f756e74206d7573742062652067726561746572207468616e2030000000600082015250565b60006112f0601d83611165565b91506112fb826112ba565b602082019050919050565b6000602082019050818103600083015261131f816112e3565b9050919050565b7f496e73756666696369656e7420616c6c6f77616e636500000000000000000000600082015250565b600061135c601683611165565b915061136782611326565b602082019050919050565b6000602082019050818103600083015261138b8161134f565b9050919050565b61139b81610d80565b82525050565b60006020820190506113b66000830184611392565b92915050565b7f417272617973206c656e677468206d69736d6174636800000000000000000000600082015250565b60006113f2601683611165565b91506113fd826113bc565b602082019050919050565b60006020820190508181036000830152611421816113e5565b9050919050565b7f456d707479206172726179730000000000000000000000000000000000000000600082015250565b600061145e600c83611165565b915061146982611428565b602082019050919050565b6000602082019050818103600083015261148d81611451565b9050919050565b60006060820190506114a96000830186611059565b6114b66020830185611059565b6114c36040830184611392565b94935050505056fea264697066735822122070000d0c098dab08abab2ca617142a80d5ca28c2c53045e61bc8894550d943d764736f6c63430008140033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 PUSH1 0x0 DUP2 SWAP1 SSTORE POP PUSH2 0x1501 DUP1 PUSH2 0x28 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x4C JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x322EB93A EQ PUSH2 0x51 JUMPI DUP1 PUSH4 0x4C8E3948 EQ PUSH2 0x81 JUMPI DUP1 PUSH4 0xDF904E33 EQ PUSH2 0xB1 JUMPI DUP1 PUSH4 0xEE07C804 EQ PUSH2 0xCD JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x6B PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x66 SWAP2 SWAP1 PUSH2 0xCF4 JUMP JUMPDEST PUSH2 0xE9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x78 SWAP2 SWAP1 PUSH2 0xE1C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x9B PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x96 SWAP2 SWAP1 PUSH2 0xCF4 JUMP JUMPDEST PUSH2 0x222 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xA8 SWAP2 SWAP1 PUSH2 0xE1C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xCB PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xC6 SWAP2 SWAP1 PUSH2 0xE6A JUMP JUMPDEST PUSH2 0x35D JUMP JUMPDEST STOP JUMPDEST PUSH2 0xE7 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xE2 SWAP2 SWAP1 PUSH2 0xF27 JUMP JUMPDEST PUSH2 0x676 JUMP JUMPDEST STOP JUMPDEST PUSH1 0x60 DUP4 DUP4 SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x108 JUMPI PUSH2 0x107 PUSH2 0xFCE JUMP JUMPDEST JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x136 JUMPI DUP2 PUSH1 0x20 ADD PUSH1 0x20 DUP3 MUL DUP1 CALLDATASIZE DUP4 CALLDATACOPY DUP1 DUP3 ADD SWAP2 POP POP SWAP1 POP JUMPDEST POP SWAP1 POP PUSH1 0x0 JUMPDEST DUP5 DUP5 SWAP1 POP DUP2 LT ISZERO PUSH2 0x21A JUMPI DUP5 DUP5 DUP3 DUP2 DUP2 LT PUSH2 0x15A JUMPI PUSH2 0x159 PUSH2 0xFFD JUMP JUMPDEST JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x16F SWAP2 SWAP1 PUSH2 0x102C JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 DUP5 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1A7 SWAP2 SWAP1 PUSH2 0x1068 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1C4 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1E8 SWAP2 SWAP1 PUSH2 0x1098 JUMP JUMPDEST DUP3 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x1FB JUMPI PUSH2 0x1FA PUSH2 0xFFD JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD DUP2 DUP2 MSTORE POP POP DUP1 DUP1 PUSH2 0x212 SWAP1 PUSH2 0x10F4 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x13C JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x60 DUP4 DUP4 SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x241 JUMPI PUSH2 0x240 PUSH2 0xFCE JUMP JUMPDEST JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x26F JUMPI DUP2 PUSH1 0x20 ADD PUSH1 0x20 DUP3 MUL DUP1 CALLDATASIZE DUP4 CALLDATACOPY DUP1 DUP3 ADD SWAP2 POP POP SWAP1 POP JUMPDEST POP SWAP1 POP PUSH1 0x0 JUMPDEST DUP5 DUP5 SWAP1 POP DUP2 LT ISZERO PUSH2 0x355 JUMPI DUP5 DUP5 DUP3 DUP2 DUP2 LT PUSH2 0x293 JUMPI PUSH2 0x292 PUSH2 0xFFD JUMP JUMPDEST JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x2A8 SWAP2 SWAP1 PUSH2 0x102C JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xDD62ED3E DUP5 ADDRESS PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2E2 SWAP3 SWAP2 SWAP1 PUSH2 0x113C JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2FF JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x323 SWAP2 SWAP1 PUSH2 0x1098 JUMP JUMPDEST DUP3 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x336 JUMPI PUSH2 0x335 PUSH2 0xFFD JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD DUP2 DUP2 MSTORE POP POP DUP1 DUP1 PUSH2 0x34D SWAP1 PUSH2 0x10F4 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x275 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0x365 PUSH2 0xAB3 JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x3D4 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3CB SWAP1 PUSH2 0x11C2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x443 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x43A SWAP1 PUSH2 0x122E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x4B2 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x4A9 SWAP1 PUSH2 0x129A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP2 GT PUSH2 0x4F5 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x4EC SWAP1 PUSH2 0x1306 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP5 SWAP1 POP PUSH1 0x0 DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xDD62ED3E DUP7 ADDRESS PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x537 SWAP3 SWAP2 SWAP1 PUSH2 0x113C JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x554 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x578 SWAP2 SWAP1 PUSH2 0x1098 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 LT ISZERO PUSH2 0x5BD JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5B4 SWAP1 PUSH2 0x1372 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x5EA DUP6 DUP6 DUP6 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0xAF9 SWAP1 SWAP4 SWAP3 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP8 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x9AF266B6CA4909F988DC948FB50AD15153ABBE525351881BAD4FA858BE96515C DUP7 PUSH1 0x40 MLOAD PUSH2 0x65E SWAP2 SWAP1 PUSH2 0x13A1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP POP PUSH2 0x670 PUSH2 0xB7B JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH2 0x67E PUSH2 0xAB3 JUMP JUMPDEST DUP2 DUP2 SWAP1 POP DUP7 DUP7 SWAP1 POP EQ PUSH2 0x6C6 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x6BD SWAP1 PUSH2 0x1408 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP7 DUP7 SWAP1 POP GT PUSH2 0x70C JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x703 SWAP1 PUSH2 0x1474 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x77B JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x772 SWAP1 PUSH2 0x122E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x7EA JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x7E1 SWAP1 PUSH2 0x129A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 JUMPDEST DUP7 DUP7 SWAP1 POP DUP2 LT ISZERO PUSH2 0xA3A JUMPI PUSH1 0x0 DUP4 DUP4 DUP4 DUP2 DUP2 LT PUSH2 0x80D JUMPI PUSH2 0x80C PUSH2 0xFFD JUMP JUMPDEST JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD CALLDATALOAD GT ISZERO PUSH2 0xA27 JUMPI PUSH1 0x0 DUP8 DUP8 DUP4 DUP2 DUP2 LT PUSH2 0x82F JUMPI PUSH2 0x82E PUSH2 0xFFD JUMP JUMPDEST JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x844 SWAP2 SWAP1 PUSH2 0x102C JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xDD62ED3E DUP9 ADDRESS PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x883 SWAP3 SWAP2 SWAP1 PUSH2 0x113C JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x8A0 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x8C4 SWAP2 SWAP1 PUSH2 0x1098 JUMP JUMPDEST SWAP1 POP DUP5 DUP5 DUP5 DUP2 DUP2 LT PUSH2 0x8D9 JUMPI PUSH2 0x8D8 PUSH2 0xFFD JUMP JUMPDEST JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD CALLDATALOAD DUP2 LT ISZERO PUSH2 0x922 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x919 SWAP1 PUSH2 0x1372 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x968 DUP8 DUP8 DUP8 DUP8 DUP8 DUP2 DUP2 LT PUSH2 0x93A JUMPI PUSH2 0x939 PUSH2 0xFFD JUMP JUMPDEST JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD CALLDATALOAD DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0xAF9 SWAP1 SWAP4 SWAP3 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP8 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP11 DUP11 DUP7 DUP2 DUP2 LT PUSH2 0x9A9 JUMPI PUSH2 0x9A8 PUSH2 0xFFD JUMP JUMPDEST JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x9BE SWAP2 SWAP1 PUSH2 0x102C JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x9AF266B6CA4909F988DC948FB50AD15153ABBE525351881BAD4FA858BE96515C DUP9 DUP9 DUP9 DUP2 DUP2 LT PUSH2 0xA08 JUMPI PUSH2 0xA07 PUSH2 0xFFD JUMP JUMPDEST JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD CALLDATALOAD PUSH1 0x40 MLOAD PUSH2 0xA1C SWAP2 SWAP1 PUSH2 0x13A1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP POP JUMPDEST DUP1 DUP1 PUSH2 0xA32 SWAP1 PUSH2 0x10F4 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x7ED JUMP JUMPDEST POP DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xEE33B49C2685AF4719E7E52028345A4147B8DF3070F604EED24DA16954C07E1A DUP9 DUP9 SWAP1 POP PUSH1 0x40 MLOAD PUSH2 0xA9B SWAP2 SWAP1 PUSH2 0x13A1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 PUSH2 0xAAB PUSH2 0xB7B JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x2 PUSH1 0x0 SLOAD SUB PUSH2 0xAEF JUMPI PUSH1 0x40 MLOAD PUSH32 0x3EE5AEB500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x2 PUSH1 0x0 DUP2 SWAP1 SSTORE POP JUMP JUMPDEST PUSH2 0xB75 DUP5 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x23B872DD DUP7 DUP7 DUP7 PUSH1 0x40 MLOAD PUSH1 0x24 ADD PUSH2 0xB2E SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1494 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP2 POP PUSH1 0xE0 SHL PUSH1 0x20 DUP3 ADD DUP1 MLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 DUP2 DUP4 AND OR DUP4 MSTORE POP POP POP POP PUSH2 0xB85 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x0 DUP2 SWAP1 SSTORE POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x20 PUSH1 0x0 DUP5 MLOAD PUSH1 0x20 DUP7 ADD PUSH1 0x0 DUP9 GAS CALL DUP1 PUSH2 0xBA8 JUMPI PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY RETURNDATASIZE DUP2 REVERT JUMPDEST RETURNDATASIZE SWAP3 POP PUSH1 0x0 MLOAD SWAP2 POP POP PUSH1 0x0 DUP3 EQ PUSH2 0xBC3 JUMPI PUSH1 0x1 DUP2 EQ ISZERO PUSH2 0xBDF JUMP JUMPDEST PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EXTCODESIZE EQ JUMPDEST ISZERO PUSH2 0xC21 JUMPI DUP4 PUSH1 0x40 MLOAD PUSH32 0x5274AFE700000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xC18 SWAP2 SWAP1 PUSH2 0x1068 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0xC56 JUMPI PUSH2 0xC55 PUSH2 0xC31 JUMP JUMPDEST JUMPDEST DUP3 CALLDATALOAD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xC73 JUMPI PUSH2 0xC72 PUSH2 0xC36 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0xC8F JUMPI PUSH2 0xC8E PUSH2 0xC3B JUMP JUMPDEST JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xCC1 DUP3 PUSH2 0xC96 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xCD1 DUP2 PUSH2 0xCB6 JUMP JUMPDEST DUP2 EQ PUSH2 0xCDC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xCEE DUP2 PUSH2 0xCC8 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x40 DUP5 DUP7 SUB SLT ISZERO PUSH2 0xD0D JUMPI PUSH2 0xD0C PUSH2 0xC27 JUMP JUMPDEST JUMPDEST PUSH1 0x0 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xD2B JUMPI PUSH2 0xD2A PUSH2 0xC2C JUMP JUMPDEST JUMPDEST PUSH2 0xD37 DUP7 DUP3 DUP8 ADD PUSH2 0xC40 JUMP JUMPDEST SWAP4 POP SWAP4 POP POP PUSH1 0x20 PUSH2 0xD4A DUP7 DUP3 DUP8 ADD PUSH2 0xCDF JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xD93 DUP2 PUSH2 0xD80 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xDA5 DUP4 DUP4 PUSH2 0xD8A JUMP JUMPDEST PUSH1 0x20 DUP4 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xDC9 DUP3 PUSH2 0xD54 JUMP JUMPDEST PUSH2 0xDD3 DUP2 DUP6 PUSH2 0xD5F JUMP JUMPDEST SWAP4 POP PUSH2 0xDDE DUP4 PUSH2 0xD70 JUMP JUMPDEST DUP1 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xE0F JUMPI DUP2 MLOAD PUSH2 0xDF6 DUP9 DUP3 PUSH2 0xD99 JUMP JUMPDEST SWAP8 POP PUSH2 0xE01 DUP4 PUSH2 0xDB1 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH2 0xDE2 JUMP JUMPDEST POP DUP6 SWAP4 POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0xE36 DUP2 DUP5 PUSH2 0xDBE JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xE47 DUP2 PUSH2 0xD80 JUMP JUMPDEST DUP2 EQ PUSH2 0xE52 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xE64 DUP2 PUSH2 0xE3E JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0xE84 JUMPI PUSH2 0xE83 PUSH2 0xC27 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xE92 DUP8 DUP3 DUP9 ADD PUSH2 0xCDF JUMP JUMPDEST SWAP5 POP POP PUSH1 0x20 PUSH2 0xEA3 DUP8 DUP3 DUP9 ADD PUSH2 0xCDF JUMP JUMPDEST SWAP4 POP POP PUSH1 0x40 PUSH2 0xEB4 DUP8 DUP3 DUP9 ADD PUSH2 0xCDF JUMP JUMPDEST SWAP3 POP POP PUSH1 0x60 PUSH2 0xEC5 DUP8 DUP3 DUP9 ADD PUSH2 0xE55 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0xEE7 JUMPI PUSH2 0xEE6 PUSH2 0xC31 JUMP JUMPDEST JUMPDEST DUP3 CALLDATALOAD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xF04 JUMPI PUSH2 0xF03 PUSH2 0xC36 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0xF20 JUMPI PUSH2 0xF1F PUSH2 0xC3B JUMP JUMPDEST JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP8 DUP10 SUB SLT ISZERO PUSH2 0xF44 JUMPI PUSH2 0xF43 PUSH2 0xC27 JUMP JUMPDEST JUMPDEST PUSH1 0x0 DUP8 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xF62 JUMPI PUSH2 0xF61 PUSH2 0xC2C JUMP JUMPDEST JUMPDEST PUSH2 0xF6E DUP10 DUP3 DUP11 ADD PUSH2 0xC40 JUMP JUMPDEST SWAP7 POP SWAP7 POP POP PUSH1 0x20 PUSH2 0xF81 DUP10 DUP3 DUP11 ADD PUSH2 0xCDF JUMP JUMPDEST SWAP5 POP POP PUSH1 0x40 PUSH2 0xF92 DUP10 DUP3 DUP11 ADD PUSH2 0xCDF JUMP JUMPDEST SWAP4 POP POP PUSH1 0x60 DUP8 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xFB3 JUMPI PUSH2 0xFB2 PUSH2 0xC2C JUMP JUMPDEST JUMPDEST PUSH2 0xFBF DUP10 DUP3 DUP11 ADD PUSH2 0xED1 JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 POP SWAP3 SWAP6 JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1042 JUMPI PUSH2 0x1041 PUSH2 0xC27 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1050 DUP5 DUP3 DUP6 ADD PUSH2 0xCDF JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x1062 DUP2 PUSH2 0xCB6 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x107D PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1059 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x1092 DUP2 PUSH2 0xE3E JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x10AE JUMPI PUSH2 0x10AD PUSH2 0xC27 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x10BC DUP5 DUP3 DUP6 ADD PUSH2 0x1083 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x10FF DUP3 PUSH2 0xD80 JUMP JUMPDEST SWAP2 POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 SUB PUSH2 0x1131 JUMPI PUSH2 0x1130 PUSH2 0x10C5 JUMP JUMPDEST JUMPDEST PUSH1 0x1 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x1151 PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x1059 JUMP JUMPDEST PUSH2 0x115E PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x1059 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x496E76616C696420746F6B656E00000000000000000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x11AC PUSH1 0xD DUP4 PUSH2 0x1165 JUMP JUMPDEST SWAP2 POP PUSH2 0x11B7 DUP3 PUSH2 0x1176 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x11DB DUP2 PUSH2 0x119F JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x496E76616C69642064657374696E6174696F6E00000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1218 PUSH1 0x13 DUP4 PUSH2 0x1165 JUMP JUMPDEST SWAP2 POP PUSH2 0x1223 DUP3 PUSH2 0x11E2 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x1247 DUP2 PUSH2 0x120B JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x496E76616C696420736F75726365000000000000000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1284 PUSH1 0xE DUP4 PUSH2 0x1165 JUMP JUMPDEST SWAP2 POP PUSH2 0x128F DUP3 PUSH2 0x124E JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x12B3 DUP2 PUSH2 0x1277 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x416D6F756E74206D7573742062652067726561746572207468616E2030000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x12F0 PUSH1 0x1D DUP4 PUSH2 0x1165 JUMP JUMPDEST SWAP2 POP PUSH2 0x12FB DUP3 PUSH2 0x12BA JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x131F DUP2 PUSH2 0x12E3 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x496E73756666696369656E7420616C6C6F77616E636500000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x135C PUSH1 0x16 DUP4 PUSH2 0x1165 JUMP JUMPDEST SWAP2 POP PUSH2 0x1367 DUP3 PUSH2 0x1326 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x138B DUP2 PUSH2 0x134F JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x139B DUP2 PUSH2 0xD80 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x13B6 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1392 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x417272617973206C656E677468206D69736D6174636800000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x13F2 PUSH1 0x16 DUP4 PUSH2 0x1165 JUMP JUMPDEST SWAP2 POP PUSH2 0x13FD DUP3 PUSH2 0x13BC JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x1421 DUP2 PUSH2 0x13E5 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x456D707479206172726179730000000000000000000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x145E PUSH1 0xC DUP4 PUSH2 0x1165 JUMP JUMPDEST SWAP2 POP PUSH2 0x1469 DUP3 PUSH2 0x1428 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x148D DUP2 PUSH2 0x1451 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0x14A9 PUSH1 0x0 DUP4 ADD DUP7 PUSH2 0x1059 JUMP JUMPDEST PUSH2 0x14B6 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x1059 JUMP JUMPDEST PUSH2 0x14C3 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x1392 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH17 0xD0C098DAB08ABAB2CA617142A80D5CA 0x28 0xC2 0xC5 ADDRESS GASLIMIT 0xE6 SHL 0xC8 DUP10 GASLIMIT POP 0xD9 NUMBER 0xD7 PUSH5 0x736F6C6343 STOP ADDMOD EQ STOP CALLER ","sourceMap":"470:4081:9:-:0;;;;;;;;;;;;;1857:1:7;2061:7;:21;;;;470:4081:9;;;;;;"},"deployedBytecode":{"functionDebugData":{"@_callOptionalReturn_737":{"entryPoint":2949,"id":737,"parameterSlots":2,"returnSlots":0},"@_nonReentrantAfter_866":{"entryPoint":2939,"id":866,"parameterSlots":0,"returnSlots":0},"@_nonReentrantBefore_858":{"entryPoint":2739,"id":858,"parameterSlots":0,"returnSlots":0},"@batchTransferFrom_1051":{"entryPoint":1654,"id":1051,"parameterSlots":6,"returnSlots":0},"@checkAllowances_1197":{"entryPoint":546,"id":1197,"parameterSlots":3,"returnSlots":1},"@checkBalances_1247":{"entryPoint":233,"id":1247,"parameterSlots":3,"returnSlots":1},"@safeTransferFrom_387":{"entryPoint":2809,"id":387,"parameterSlots":4,"returnSlots":0},"@singleTransferFrom_1143":{"entryPoint":861,"id":1143,"parameterSlots":4,"returnSlots":0},"abi_decode_t_address":{"entryPoint":3295,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_array$_t_address_$dyn_calldata_ptr":{"entryPoint":3136,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_t_array$_t_uint256_$dyn_calldata_ptr":{"entryPoint":3793,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_t_uint256":{"entryPoint":3669,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_uint256_fromMemory":{"entryPoint":4227,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_address":{"entryPoint":4140,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_addresst_addresst_addresst_uint256":{"entryPoint":3690,"id":null,"parameterSlots":2,"returnSlots":4},"abi_decode_tuple_t_array$_t_address_$dyn_calldata_ptrt_address":{"entryPoint":3316,"id":null,"parameterSlots":2,"returnSlots":3},"abi_decode_tuple_t_array$_t_address_$dyn_calldata_ptrt_addresst_addresst_array$_t_uint256_$dyn_calldata_ptr":{"entryPoint":3879,"id":null,"parameterSlots":2,"returnSlots":6},"abi_decode_tuple_t_uint256_fromMemory":{"entryPoint":4248,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encodeUpdatedPos_t_uint256_to_t_uint256":{"entryPoint":3481,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_address_to_t_address_fromStack":{"entryPoint":4185,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_array$_t_uint256_$dyn_memory_ptr_to_t_array$_t_uint256_$dyn_memory_ptr_fromStack":{"entryPoint":3518,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_stringliteral_3191da89117a1b0027f3623a186706fe04c82acd10c13dd219b922faa6967c0e_to_t_string_memory_ptr_fromStack":{"entryPoint":4727,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_3e76f273c719bb7d23db533a2dc9a822ae7d899fcd42eb8910272e24764e8296_to_t_string_memory_ptr_fromStack":{"entryPoint":4835,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_45e3d26e36c3151c7f92a1eee9add9658cbb8e14605ee2452ec007389b9744bc_to_t_string_memory_ptr_fromStack":{"entryPoint":4943,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_480a3d2cf1e4838d740f40eac57f23eb6facc0baaf1a65a7b61df6a5a00ed368_to_t_string_memory_ptr_fromStack":{"entryPoint":4619,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_582fd48f3876d7686bfeaaaa0db0589073271dedd50d66094f02fee2a3d2e01c_to_t_string_memory_ptr_fromStack":{"entryPoint":5093,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_5e70ebd1d4072d337a7fabaa7bda70fa2633d6e3f89d5cb725a16b10d07e54c6_to_t_string_memory_ptr_fromStack":{"entryPoint":4511,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_920fc87d8e9a45232b5e4c2c36e3c0fff5f09b5434a80d6ec35d7f09f9d69c29_to_t_string_memory_ptr_fromStack":{"entryPoint":5201,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_uint256_to_t_uint256":{"entryPoint":3466,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_uint256_to_t_uint256_fromStack":{"entryPoint":5010,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":4200,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed":{"entryPoint":4412,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_address_t_address_t_uint256__to_t_address_t_address_t_uint256__fromStack_reversed":{"entryPoint":5268,"id":null,"parameterSlots":4,"returnSlots":1},"abi_encode_tuple_t_array$_t_uint256_$dyn_memory_ptr__to_t_array$_t_uint256_$dyn_memory_ptr__fromStack_reversed":{"entryPoint":3612,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_stringliteral_3191da89117a1b0027f3623a186706fe04c82acd10c13dd219b922faa6967c0e__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":4762,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_3e76f273c719bb7d23db533a2dc9a822ae7d899fcd42eb8910272e24764e8296__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":4870,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_45e3d26e36c3151c7f92a1eee9add9658cbb8e14605ee2452ec007389b9744bc__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":4978,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_480a3d2cf1e4838d740f40eac57f23eb6facc0baaf1a65a7b61df6a5a00ed368__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":4654,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_582fd48f3876d7686bfeaaaa0db0589073271dedd50d66094f02fee2a3d2e01c__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":5128,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_5e70ebd1d4072d337a7fabaa7bda70fa2633d6e3f89d5cb725a16b10d07e54c6__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":4546,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_920fc87d8e9a45232b5e4c2c36e3c0fff5f09b5434a80d6ec35d7f09f9d69c29__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":5236,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed":{"entryPoint":5025,"id":null,"parameterSlots":2,"returnSlots":1},"allocate_unbounded":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":1},"array_dataslot_t_array$_t_uint256_$dyn_memory_ptr":{"entryPoint":3440,"id":null,"parameterSlots":1,"returnSlots":1},"array_length_t_array$_t_uint256_$dyn_memory_ptr":{"entryPoint":3412,"id":null,"parameterSlots":1,"returnSlots":1},"array_nextElement_t_array$_t_uint256_$dyn_memory_ptr":{"entryPoint":3505,"id":null,"parameterSlots":1,"returnSlots":1},"array_storeLengthForEncoding_t_array$_t_uint256_$dyn_memory_ptr_fromStack":{"entryPoint":3423,"id":null,"parameterSlots":2,"returnSlots":1},"array_storeLengthForEncoding_t_string_memory_ptr_fromStack":{"entryPoint":4453,"id":null,"parameterSlots":2,"returnSlots":1},"cleanup_t_address":{"entryPoint":3254,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint160":{"entryPoint":3222,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint256":{"entryPoint":3456,"id":null,"parameterSlots":1,"returnSlots":1},"increment_t_uint256":{"entryPoint":4340,"id":null,"parameterSlots":1,"returnSlots":1},"panic_error_0x11":{"entryPoint":4293,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x32":{"entryPoint":4093,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x41":{"entryPoint":4046,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490":{"entryPoint":3126,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d":{"entryPoint":3121,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef":{"entryPoint":3131,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db":{"entryPoint":3116,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b":{"entryPoint":3111,"id":null,"parameterSlots":0,"returnSlots":0},"store_literal_in_memory_3191da89117a1b0027f3623a186706fe04c82acd10c13dd219b922faa6967c0e":{"entryPoint":4686,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_3e76f273c719bb7d23db533a2dc9a822ae7d899fcd42eb8910272e24764e8296":{"entryPoint":4794,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_45e3d26e36c3151c7f92a1eee9add9658cbb8e14605ee2452ec007389b9744bc":{"entryPoint":4902,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_480a3d2cf1e4838d740f40eac57f23eb6facc0baaf1a65a7b61df6a5a00ed368":{"entryPoint":4578,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_582fd48f3876d7686bfeaaaa0db0589073271dedd50d66094f02fee2a3d2e01c":{"entryPoint":5052,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_5e70ebd1d4072d337a7fabaa7bda70fa2633d6e3f89d5cb725a16b10d07e54c6":{"entryPoint":4470,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_920fc87d8e9a45232b5e4c2c36e3c0fff5f09b5434a80d6ec35d7f09f9d69c29":{"entryPoint":5160,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_address":{"entryPoint":3272,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_uint256":{"entryPoint":3646,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:17575:11","statements":[{"body":{"nodeType":"YulBlock","src":"47:35:11","statements":[{"nodeType":"YulAssignment","src":"57:19:11","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"73:2:11","type":"","value":"64"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"67:5:11"},"nodeType":"YulFunctionCall","src":"67:9:11"},"variableNames":[{"name":"memPtr","nodeType":"YulIdentifier","src":"57:6:11"}]}]},"name":"allocate_unbounded","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"memPtr","nodeType":"YulTypedName","src":"40:6:11","type":""}],"src":"7:75:11"},{"body":{"nodeType":"YulBlock","src":"177:28:11","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"194:1:11","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"197:1:11","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"187:6:11"},"nodeType":"YulFunctionCall","src":"187:12:11"},"nodeType":"YulExpressionStatement","src":"187:12:11"}]},"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nodeType":"YulFunctionDefinition","src":"88:117:11"},{"body":{"nodeType":"YulBlock","src":"300:28:11","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"317:1:11","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"320:1:11","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"310:6:11"},"nodeType":"YulFunctionCall","src":"310:12:11"},"nodeType":"YulExpressionStatement","src":"310:12:11"}]},"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nodeType":"YulFunctionDefinition","src":"211:117:11"},{"body":{"nodeType":"YulBlock","src":"423:28:11","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"440:1:11","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"443:1:11","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"433:6:11"},"nodeType":"YulFunctionCall","src":"433:12:11"},"nodeType":"YulExpressionStatement","src":"433:12:11"}]},"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nodeType":"YulFunctionDefinition","src":"334:117:11"},{"body":{"nodeType":"YulBlock","src":"546:28:11","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"563:1:11","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"566:1:11","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"556:6:11"},"nodeType":"YulFunctionCall","src":"556:12:11"},"nodeType":"YulExpressionStatement","src":"556:12:11"}]},"name":"revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490","nodeType":"YulFunctionDefinition","src":"457:117:11"},{"body":{"nodeType":"YulBlock","src":"669:28:11","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"686:1:11","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"689:1:11","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"679:6:11"},"nodeType":"YulFunctionCall","src":"679:12:11"},"nodeType":"YulExpressionStatement","src":"679:12:11"}]},"name":"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef","nodeType":"YulFunctionDefinition","src":"580:117:11"},{"body":{"nodeType":"YulBlock","src":"810:478:11","statements":[{"body":{"nodeType":"YulBlock","src":"859:83:11","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nodeType":"YulIdentifier","src":"861:77:11"},"nodeType":"YulFunctionCall","src":"861:79:11"},"nodeType":"YulExpressionStatement","src":"861:79:11"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"838:6:11"},{"kind":"number","nodeType":"YulLiteral","src":"846:4:11","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"834:3:11"},"nodeType":"YulFunctionCall","src":"834:17:11"},{"name":"end","nodeType":"YulIdentifier","src":"853:3:11"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"830:3:11"},"nodeType":"YulFunctionCall","src":"830:27:11"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"823:6:11"},"nodeType":"YulFunctionCall","src":"823:35:11"},"nodeType":"YulIf","src":"820:122:11"},{"nodeType":"YulAssignment","src":"951:30:11","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"974:6:11"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"961:12:11"},"nodeType":"YulFunctionCall","src":"961:20:11"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"951:6:11"}]},{"body":{"nodeType":"YulBlock","src":"1024:83:11","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490","nodeType":"YulIdentifier","src":"1026:77:11"},"nodeType":"YulFunctionCall","src":"1026:79:11"},"nodeType":"YulExpressionStatement","src":"1026:79:11"}]},"condition":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"996:6:11"},{"kind":"number","nodeType":"YulLiteral","src":"1004:18:11","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"993:2:11"},"nodeType":"YulFunctionCall","src":"993:30:11"},"nodeType":"YulIf","src":"990:117:11"},{"nodeType":"YulAssignment","src":"1116:29:11","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1132:6:11"},{"kind":"number","nodeType":"YulLiteral","src":"1140:4:11","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1128:3:11"},"nodeType":"YulFunctionCall","src":"1128:17:11"},"variableNames":[{"name":"arrayPos","nodeType":"YulIdentifier","src":"1116:8:11"}]},{"body":{"nodeType":"YulBlock","src":"1199:83:11","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef","nodeType":"YulIdentifier","src":"1201:77:11"},"nodeType":"YulFunctionCall","src":"1201:79:11"},"nodeType":"YulExpressionStatement","src":"1201:79:11"}]},"condition":{"arguments":[{"arguments":[{"name":"arrayPos","nodeType":"YulIdentifier","src":"1164:8:11"},{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"1178:6:11"},{"kind":"number","nodeType":"YulLiteral","src":"1186:4:11","type":"","value":"0x20"}],"functionName":{"name":"mul","nodeType":"YulIdentifier","src":"1174:3:11"},"nodeType":"YulFunctionCall","src":"1174:17:11"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1160:3:11"},"nodeType":"YulFunctionCall","src":"1160:32:11"},{"name":"end","nodeType":"YulIdentifier","src":"1194:3:11"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1157:2:11"},"nodeType":"YulFunctionCall","src":"1157:41:11"},"nodeType":"YulIf","src":"1154:128:11"}]},"name":"abi_decode_t_array$_t_address_$dyn_calldata_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"777:6:11","type":""},{"name":"end","nodeType":"YulTypedName","src":"785:3:11","type":""}],"returnVariables":[{"name":"arrayPos","nodeType":"YulTypedName","src":"793:8:11","type":""},{"name":"length","nodeType":"YulTypedName","src":"803:6:11","type":""}],"src":"720:568:11"},{"body":{"nodeType":"YulBlock","src":"1339:81:11","statements":[{"nodeType":"YulAssignment","src":"1349:65:11","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1364:5:11"},{"kind":"number","nodeType":"YulLiteral","src":"1371:42:11","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1360:3:11"},"nodeType":"YulFunctionCall","src":"1360:54:11"},"variableNames":[{"name":"cleaned","nodeType":"YulIdentifier","src":"1349:7:11"}]}]},"name":"cleanup_t_uint160","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"1321:5:11","type":""}],"returnVariables":[{"name":"cleaned","nodeType":"YulTypedName","src":"1331:7:11","type":""}],"src":"1294:126:11"},{"body":{"nodeType":"YulBlock","src":"1471:51:11","statements":[{"nodeType":"YulAssignment","src":"1481:35:11","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1510:5:11"}],"functionName":{"name":"cleanup_t_uint160","nodeType":"YulIdentifier","src":"1492:17:11"},"nodeType":"YulFunctionCall","src":"1492:24:11"},"variableNames":[{"name":"cleaned","nodeType":"YulIdentifier","src":"1481:7:11"}]}]},"name":"cleanup_t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"1453:5:11","type":""}],"returnVariables":[{"name":"cleaned","nodeType":"YulTypedName","src":"1463:7:11","type":""}],"src":"1426:96:11"},{"body":{"nodeType":"YulBlock","src":"1571:79:11","statements":[{"body":{"nodeType":"YulBlock","src":"1628:16:11","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1637:1:11","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1640:1:11","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1630:6:11"},"nodeType":"YulFunctionCall","src":"1630:12:11"},"nodeType":"YulExpressionStatement","src":"1630:12:11"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1594:5:11"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1619:5:11"}],"functionName":{"name":"cleanup_t_address","nodeType":"YulIdentifier","src":"1601:17:11"},"nodeType":"YulFunctionCall","src":"1601:24:11"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"1591:2:11"},"nodeType":"YulFunctionCall","src":"1591:35:11"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1584:6:11"},"nodeType":"YulFunctionCall","src":"1584:43:11"},"nodeType":"YulIf","src":"1581:63:11"}]},"name":"validator_revert_t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"1564:5:11","type":""}],"src":"1528:122:11"},{"body":{"nodeType":"YulBlock","src":"1708:87:11","statements":[{"nodeType":"YulAssignment","src":"1718:29:11","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1740:6:11"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1727:12:11"},"nodeType":"YulFunctionCall","src":"1727:20:11"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"1718:5:11"}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1783:5:11"}],"functionName":{"name":"validator_revert_t_address","nodeType":"YulIdentifier","src":"1756:26:11"},"nodeType":"YulFunctionCall","src":"1756:33:11"},"nodeType":"YulExpressionStatement","src":"1756:33:11"}]},"name":"abi_decode_t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"1686:6:11","type":""},{"name":"end","nodeType":"YulTypedName","src":"1694:3:11","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"1702:5:11","type":""}],"src":"1656:139:11"},{"body":{"nodeType":"YulBlock","src":"1919:586:11","statements":[{"body":{"nodeType":"YulBlock","src":"1965:83:11","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nodeType":"YulIdentifier","src":"1967:77:11"},"nodeType":"YulFunctionCall","src":"1967:79:11"},"nodeType":"YulExpressionStatement","src":"1967:79:11"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1940:7:11"},{"name":"headStart","nodeType":"YulIdentifier","src":"1949:9:11"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1936:3:11"},"nodeType":"YulFunctionCall","src":"1936:23:11"},{"kind":"number","nodeType":"YulLiteral","src":"1961:2:11","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1932:3:11"},"nodeType":"YulFunctionCall","src":"1932:32:11"},"nodeType":"YulIf","src":"1929:119:11"},{"nodeType":"YulBlock","src":"2058:312:11","statements":[{"nodeType":"YulVariableDeclaration","src":"2073:45:11","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2104:9:11"},{"kind":"number","nodeType":"YulLiteral","src":"2115:1:11","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2100:3:11"},"nodeType":"YulFunctionCall","src":"2100:17:11"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2087:12:11"},"nodeType":"YulFunctionCall","src":"2087:31:11"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"2077:6:11","type":""}]},{"body":{"nodeType":"YulBlock","src":"2165:83:11","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nodeType":"YulIdentifier","src":"2167:77:11"},"nodeType":"YulFunctionCall","src":"2167:79:11"},"nodeType":"YulExpressionStatement","src":"2167:79:11"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"2137:6:11"},{"kind":"number","nodeType":"YulLiteral","src":"2145:18:11","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"2134:2:11"},"nodeType":"YulFunctionCall","src":"2134:30:11"},"nodeType":"YulIf","src":"2131:117:11"},{"nodeType":"YulAssignment","src":"2262:98:11","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2332:9:11"},{"name":"offset","nodeType":"YulIdentifier","src":"2343:6:11"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2328:3:11"},"nodeType":"YulFunctionCall","src":"2328:22:11"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"2352:7:11"}],"functionName":{"name":"abi_decode_t_array$_t_address_$dyn_calldata_ptr","nodeType":"YulIdentifier","src":"2280:47:11"},"nodeType":"YulFunctionCall","src":"2280:80:11"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"2262:6:11"},{"name":"value1","nodeType":"YulIdentifier","src":"2270:6:11"}]}]},{"nodeType":"YulBlock","src":"2380:118:11","statements":[{"nodeType":"YulVariableDeclaration","src":"2395:16:11","value":{"kind":"number","nodeType":"YulLiteral","src":"2409:2:11","type":"","value":"32"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"2399:6:11","type":""}]},{"nodeType":"YulAssignment","src":"2425:63:11","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2460:9:11"},{"name":"offset","nodeType":"YulIdentifier","src":"2471:6:11"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2456:3:11"},"nodeType":"YulFunctionCall","src":"2456:22:11"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"2480:7:11"}],"functionName":{"name":"abi_decode_t_address","nodeType":"YulIdentifier","src":"2435:20:11"},"nodeType":"YulFunctionCall","src":"2435:53:11"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"2425:6:11"}]}]}]},"name":"abi_decode_tuple_t_array$_t_address_$dyn_calldata_ptrt_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1873:9:11","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1884:7:11","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1896:6:11","type":""},{"name":"value1","nodeType":"YulTypedName","src":"1904:6:11","type":""},{"name":"value2","nodeType":"YulTypedName","src":"1912:6:11","type":""}],"src":"1801:704:11"},{"body":{"nodeType":"YulBlock","src":"2585:40:11","statements":[{"nodeType":"YulAssignment","src":"2596:22:11","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"2612:5:11"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2606:5:11"},"nodeType":"YulFunctionCall","src":"2606:12:11"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"2596:6:11"}]}]},"name":"array_length_t_array$_t_uint256_$dyn_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"2568:5:11","type":""}],"returnVariables":[{"name":"length","nodeType":"YulTypedName","src":"2578:6:11","type":""}],"src":"2511:114:11"},{"body":{"nodeType":"YulBlock","src":"2742:73:11","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"2759:3:11"},{"name":"length","nodeType":"YulIdentifier","src":"2764:6:11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2752:6:11"},"nodeType":"YulFunctionCall","src":"2752:19:11"},"nodeType":"YulExpressionStatement","src":"2752:19:11"},{"nodeType":"YulAssignment","src":"2780:29:11","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"2799:3:11"},{"kind":"number","nodeType":"YulLiteral","src":"2804:4:11","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2795:3:11"},"nodeType":"YulFunctionCall","src":"2795:14:11"},"variableNames":[{"name":"updated_pos","nodeType":"YulIdentifier","src":"2780:11:11"}]}]},"name":"array_storeLengthForEncoding_t_array$_t_uint256_$dyn_memory_ptr_fromStack","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"2714:3:11","type":""},{"name":"length","nodeType":"YulTypedName","src":"2719:6:11","type":""}],"returnVariables":[{"name":"updated_pos","nodeType":"YulTypedName","src":"2730:11:11","type":""}],"src":"2631:184:11"},{"body":{"nodeType":"YulBlock","src":"2893:60:11","statements":[{"nodeType":"YulAssignment","src":"2903:11:11","value":{"name":"ptr","nodeType":"YulIdentifier","src":"2911:3:11"},"variableNames":[{"name":"data","nodeType":"YulIdentifier","src":"2903:4:11"}]},{"nodeType":"YulAssignment","src":"2924:22:11","value":{"arguments":[{"name":"ptr","nodeType":"YulIdentifier","src":"2936:3:11"},{"kind":"number","nodeType":"YulLiteral","src":"2941:4:11","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2932:3:11"},"nodeType":"YulFunctionCall","src":"2932:14:11"},"variableNames":[{"name":"data","nodeType":"YulIdentifier","src":"2924:4:11"}]}]},"name":"array_dataslot_t_array$_t_uint256_$dyn_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"ptr","nodeType":"YulTypedName","src":"2880:3:11","type":""}],"returnVariables":[{"name":"data","nodeType":"YulTypedName","src":"2888:4:11","type":""}],"src":"2821:132:11"},{"body":{"nodeType":"YulBlock","src":"3004:32:11","statements":[{"nodeType":"YulAssignment","src":"3014:16:11","value":{"name":"value","nodeType":"YulIdentifier","src":"3025:5:11"},"variableNames":[{"name":"cleaned","nodeType":"YulIdentifier","src":"3014:7:11"}]}]},"name":"cleanup_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"2986:5:11","type":""}],"returnVariables":[{"name":"cleaned","nodeType":"YulTypedName","src":"2996:7:11","type":""}],"src":"2959:77:11"},{"body":{"nodeType":"YulBlock","src":"3097:53:11","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"3114:3:11"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"3137:5:11"}],"functionName":{"name":"cleanup_t_uint256","nodeType":"YulIdentifier","src":"3119:17:11"},"nodeType":"YulFunctionCall","src":"3119:24:11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3107:6:11"},"nodeType":"YulFunctionCall","src":"3107:37:11"},"nodeType":"YulExpressionStatement","src":"3107:37:11"}]},"name":"abi_encode_t_uint256_to_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"3085:5:11","type":""},{"name":"pos","nodeType":"YulTypedName","src":"3092:3:11","type":""}],"src":"3042:108:11"},{"body":{"nodeType":"YulBlock","src":"3236:99:11","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3280:6:11"},{"name":"pos","nodeType":"YulIdentifier","src":"3288:3:11"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256","nodeType":"YulIdentifier","src":"3246:33:11"},"nodeType":"YulFunctionCall","src":"3246:46:11"},"nodeType":"YulExpressionStatement","src":"3246:46:11"},{"nodeType":"YulAssignment","src":"3301:28:11","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"3319:3:11"},{"kind":"number","nodeType":"YulLiteral","src":"3324:4:11","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3315:3:11"},"nodeType":"YulFunctionCall","src":"3315:14:11"},"variableNames":[{"name":"updatedPos","nodeType":"YulIdentifier","src":"3301:10:11"}]}]},"name":"abi_encodeUpdatedPos_t_uint256_to_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"value0","nodeType":"YulTypedName","src":"3209:6:11","type":""},{"name":"pos","nodeType":"YulTypedName","src":"3217:3:11","type":""}],"returnVariables":[{"name":"updatedPos","nodeType":"YulTypedName","src":"3225:10:11","type":""}],"src":"3156:179:11"},{"body":{"nodeType":"YulBlock","src":"3416:38:11","statements":[{"nodeType":"YulAssignment","src":"3426:22:11","value":{"arguments":[{"name":"ptr","nodeType":"YulIdentifier","src":"3438:3:11"},{"kind":"number","nodeType":"YulLiteral","src":"3443:4:11","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3434:3:11"},"nodeType":"YulFunctionCall","src":"3434:14:11"},"variableNames":[{"name":"next","nodeType":"YulIdentifier","src":"3426:4:11"}]}]},"name":"array_nextElement_t_array$_t_uint256_$dyn_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"ptr","nodeType":"YulTypedName","src":"3403:3:11","type":""}],"returnVariables":[{"name":"next","nodeType":"YulTypedName","src":"3411:4:11","type":""}],"src":"3341:113:11"},{"body":{"nodeType":"YulBlock","src":"3614:608:11","statements":[{"nodeType":"YulVariableDeclaration","src":"3624:68:11","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"3686:5:11"}],"functionName":{"name":"array_length_t_array$_t_uint256_$dyn_memory_ptr","nodeType":"YulIdentifier","src":"3638:47:11"},"nodeType":"YulFunctionCall","src":"3638:54:11"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"3628:6:11","type":""}]},{"nodeType":"YulAssignment","src":"3701:93:11","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"3782:3:11"},{"name":"length","nodeType":"YulIdentifier","src":"3787:6:11"}],"functionName":{"name":"array_storeLengthForEncoding_t_array$_t_uint256_$dyn_memory_ptr_fromStack","nodeType":"YulIdentifier","src":"3708:73:11"},"nodeType":"YulFunctionCall","src":"3708:86:11"},"variableNames":[{"name":"pos","nodeType":"YulIdentifier","src":"3701:3:11"}]},{"nodeType":"YulVariableDeclaration","src":"3803:71:11","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"3868:5:11"}],"functionName":{"name":"array_dataslot_t_array$_t_uint256_$dyn_memory_ptr","nodeType":"YulIdentifier","src":"3818:49:11"},"nodeType":"YulFunctionCall","src":"3818:56:11"},"variables":[{"name":"baseRef","nodeType":"YulTypedName","src":"3807:7:11","type":""}]},{"nodeType":"YulVariableDeclaration","src":"3883:21:11","value":{"name":"baseRef","nodeType":"YulIdentifier","src":"3897:7:11"},"variables":[{"name":"srcPtr","nodeType":"YulTypedName","src":"3887:6:11","type":""}]},{"body":{"nodeType":"YulBlock","src":"3973:224:11","statements":[{"nodeType":"YulVariableDeclaration","src":"3987:34:11","value":{"arguments":[{"name":"srcPtr","nodeType":"YulIdentifier","src":"4014:6:11"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"4008:5:11"},"nodeType":"YulFunctionCall","src":"4008:13:11"},"variables":[{"name":"elementValue0","nodeType":"YulTypedName","src":"3991:13:11","type":""}]},{"nodeType":"YulAssignment","src":"4034:70:11","value":{"arguments":[{"name":"elementValue0","nodeType":"YulIdentifier","src":"4085:13:11"},{"name":"pos","nodeType":"YulIdentifier","src":"4100:3:11"}],"functionName":{"name":"abi_encodeUpdatedPos_t_uint256_to_t_uint256","nodeType":"YulIdentifier","src":"4041:43:11"},"nodeType":"YulFunctionCall","src":"4041:63:11"},"variableNames":[{"name":"pos","nodeType":"YulIdentifier","src":"4034:3:11"}]},{"nodeType":"YulAssignment","src":"4117:70:11","value":{"arguments":[{"name":"srcPtr","nodeType":"YulIdentifier","src":"4180:6:11"}],"functionName":{"name":"array_nextElement_t_array$_t_uint256_$dyn_memory_ptr","nodeType":"YulIdentifier","src":"4127:52:11"},"nodeType":"YulFunctionCall","src":"4127:60:11"},"variableNames":[{"name":"srcPtr","nodeType":"YulIdentifier","src":"4117:6:11"}]}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"3935:1:11"},{"name":"length","nodeType":"YulIdentifier","src":"3938:6:11"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"3932:2:11"},"nodeType":"YulFunctionCall","src":"3932:13:11"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"3946:18:11","statements":[{"nodeType":"YulAssignment","src":"3948:14:11","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"3957:1:11"},{"kind":"number","nodeType":"YulLiteral","src":"3960:1:11","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3953:3:11"},"nodeType":"YulFunctionCall","src":"3953:9:11"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"3948:1:11"}]}]},"pre":{"nodeType":"YulBlock","src":"3917:14:11","statements":[{"nodeType":"YulVariableDeclaration","src":"3919:10:11","value":{"kind":"number","nodeType":"YulLiteral","src":"3928:1:11","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"3923:1:11","type":""}]}]},"src":"3913:284:11"},{"nodeType":"YulAssignment","src":"4206:10:11","value":{"name":"pos","nodeType":"YulIdentifier","src":"4213:3:11"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"4206:3:11"}]}]},"name":"abi_encode_t_array$_t_uint256_$dyn_memory_ptr_to_t_array$_t_uint256_$dyn_memory_ptr_fromStack","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"3593:5:11","type":""},{"name":"pos","nodeType":"YulTypedName","src":"3600:3:11","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"3609:3:11","type":""}],"src":"3490:732:11"},{"body":{"nodeType":"YulBlock","src":"4376:225:11","statements":[{"nodeType":"YulAssignment","src":"4386:26:11","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4398:9:11"},{"kind":"number","nodeType":"YulLiteral","src":"4409:2:11","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4394:3:11"},"nodeType":"YulFunctionCall","src":"4394:18:11"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"4386:4:11"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4433:9:11"},{"kind":"number","nodeType":"YulLiteral","src":"4444:1:11","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4429:3:11"},"nodeType":"YulFunctionCall","src":"4429:17:11"},{"arguments":[{"name":"tail","nodeType":"YulIdentifier","src":"4452:4:11"},{"name":"headStart","nodeType":"YulIdentifier","src":"4458:9:11"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"4448:3:11"},"nodeType":"YulFunctionCall","src":"4448:20:11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4422:6:11"},"nodeType":"YulFunctionCall","src":"4422:47:11"},"nodeType":"YulExpressionStatement","src":"4422:47:11"},{"nodeType":"YulAssignment","src":"4478:116:11","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"4580:6:11"},{"name":"tail","nodeType":"YulIdentifier","src":"4589:4:11"}],"functionName":{"name":"abi_encode_t_array$_t_uint256_$dyn_memory_ptr_to_t_array$_t_uint256_$dyn_memory_ptr_fromStack","nodeType":"YulIdentifier","src":"4486:93:11"},"nodeType":"YulFunctionCall","src":"4486:108:11"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"4478:4:11"}]}]},"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":"4348:9:11","type":""},{"name":"value0","nodeType":"YulTypedName","src":"4360:6:11","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"4371:4:11","type":""}],"src":"4228:373:11"},{"body":{"nodeType":"YulBlock","src":"4650:79:11","statements":[{"body":{"nodeType":"YulBlock","src":"4707:16:11","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4716:1:11","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"4719:1:11","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4709:6:11"},"nodeType":"YulFunctionCall","src":"4709:12:11"},"nodeType":"YulExpressionStatement","src":"4709:12:11"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"4673:5:11"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"4698:5:11"}],"functionName":{"name":"cleanup_t_uint256","nodeType":"YulIdentifier","src":"4680:17:11"},"nodeType":"YulFunctionCall","src":"4680:24:11"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"4670:2:11"},"nodeType":"YulFunctionCall","src":"4670:35:11"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"4663:6:11"},"nodeType":"YulFunctionCall","src":"4663:43:11"},"nodeType":"YulIf","src":"4660:63:11"}]},"name":"validator_revert_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"4643:5:11","type":""}],"src":"4607:122:11"},{"body":{"nodeType":"YulBlock","src":"4787:87:11","statements":[{"nodeType":"YulAssignment","src":"4797:29:11","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"4819:6:11"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4806:12:11"},"nodeType":"YulFunctionCall","src":"4806:20:11"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"4797:5:11"}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"4862:5:11"}],"functionName":{"name":"validator_revert_t_uint256","nodeType":"YulIdentifier","src":"4835:26:11"},"nodeType":"YulFunctionCall","src":"4835:33:11"},"nodeType":"YulExpressionStatement","src":"4835:33:11"}]},"name":"abi_decode_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"4765:6:11","type":""},{"name":"end","nodeType":"YulTypedName","src":"4773:3:11","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"4781:5:11","type":""}],"src":"4735:139:11"},{"body":{"nodeType":"YulBlock","src":"4997:648:11","statements":[{"body":{"nodeType":"YulBlock","src":"5044:83:11","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nodeType":"YulIdentifier","src":"5046:77:11"},"nodeType":"YulFunctionCall","src":"5046:79:11"},"nodeType":"YulExpressionStatement","src":"5046:79:11"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"5018:7:11"},{"name":"headStart","nodeType":"YulIdentifier","src":"5027:9:11"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"5014:3:11"},"nodeType":"YulFunctionCall","src":"5014:23:11"},{"kind":"number","nodeType":"YulLiteral","src":"5039:3:11","type":"","value":"128"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"5010:3:11"},"nodeType":"YulFunctionCall","src":"5010:33:11"},"nodeType":"YulIf","src":"5007:120:11"},{"nodeType":"YulBlock","src":"5137:117:11","statements":[{"nodeType":"YulVariableDeclaration","src":"5152:15:11","value":{"kind":"number","nodeType":"YulLiteral","src":"5166:1:11","type":"","value":"0"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"5156:6:11","type":""}]},{"nodeType":"YulAssignment","src":"5181:63:11","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5216:9:11"},{"name":"offset","nodeType":"YulIdentifier","src":"5227:6:11"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5212:3:11"},"nodeType":"YulFunctionCall","src":"5212:22:11"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"5236:7:11"}],"functionName":{"name":"abi_decode_t_address","nodeType":"YulIdentifier","src":"5191:20:11"},"nodeType":"YulFunctionCall","src":"5191:53:11"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"5181:6:11"}]}]},{"nodeType":"YulBlock","src":"5264:118:11","statements":[{"nodeType":"YulVariableDeclaration","src":"5279:16:11","value":{"kind":"number","nodeType":"YulLiteral","src":"5293:2:11","type":"","value":"32"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"5283:6:11","type":""}]},{"nodeType":"YulAssignment","src":"5309:63:11","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5344:9:11"},{"name":"offset","nodeType":"YulIdentifier","src":"5355:6:11"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5340:3:11"},"nodeType":"YulFunctionCall","src":"5340:22:11"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"5364:7:11"}],"functionName":{"name":"abi_decode_t_address","nodeType":"YulIdentifier","src":"5319:20:11"},"nodeType":"YulFunctionCall","src":"5319:53:11"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"5309:6:11"}]}]},{"nodeType":"YulBlock","src":"5392:118:11","statements":[{"nodeType":"YulVariableDeclaration","src":"5407:16:11","value":{"kind":"number","nodeType":"YulLiteral","src":"5421:2:11","type":"","value":"64"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"5411:6:11","type":""}]},{"nodeType":"YulAssignment","src":"5437:63:11","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5472:9:11"},{"name":"offset","nodeType":"YulIdentifier","src":"5483:6:11"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5468:3:11"},"nodeType":"YulFunctionCall","src":"5468:22:11"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"5492:7:11"}],"functionName":{"name":"abi_decode_t_address","nodeType":"YulIdentifier","src":"5447:20:11"},"nodeType":"YulFunctionCall","src":"5447:53:11"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"5437:6:11"}]}]},{"nodeType":"YulBlock","src":"5520:118:11","statements":[{"nodeType":"YulVariableDeclaration","src":"5535:16:11","value":{"kind":"number","nodeType":"YulLiteral","src":"5549:2:11","type":"","value":"96"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"5539:6:11","type":""}]},{"nodeType":"YulAssignment","src":"5565:63:11","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5600:9:11"},{"name":"offset","nodeType":"YulIdentifier","src":"5611:6:11"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5596:3:11"},"nodeType":"YulFunctionCall","src":"5596:22:11"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"5620:7:11"}],"functionName":{"name":"abi_decode_t_uint256","nodeType":"YulIdentifier","src":"5575:20:11"},"nodeType":"YulFunctionCall","src":"5575:53:11"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"5565:6:11"}]}]}]},"name":"abi_decode_tuple_t_addresst_addresst_addresst_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4943:9:11","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"4954:7:11","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"4966:6:11","type":""},{"name":"value1","nodeType":"YulTypedName","src":"4974:6:11","type":""},{"name":"value2","nodeType":"YulTypedName","src":"4982:6:11","type":""},{"name":"value3","nodeType":"YulTypedName","src":"4990:6:11","type":""}],"src":"4880:765:11"},{"body":{"nodeType":"YulBlock","src":"5758:478:11","statements":[{"body":{"nodeType":"YulBlock","src":"5807:83:11","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nodeType":"YulIdentifier","src":"5809:77:11"},"nodeType":"YulFunctionCall","src":"5809:79:11"},"nodeType":"YulExpressionStatement","src":"5809:79:11"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"5786:6:11"},{"kind":"number","nodeType":"YulLiteral","src":"5794:4:11","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5782:3:11"},"nodeType":"YulFunctionCall","src":"5782:17:11"},{"name":"end","nodeType":"YulIdentifier","src":"5801:3:11"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"5778:3:11"},"nodeType":"YulFunctionCall","src":"5778:27:11"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"5771:6:11"},"nodeType":"YulFunctionCall","src":"5771:35:11"},"nodeType":"YulIf","src":"5768:122:11"},{"nodeType":"YulAssignment","src":"5899:30:11","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"5922:6:11"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"5909:12:11"},"nodeType":"YulFunctionCall","src":"5909:20:11"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"5899:6:11"}]},{"body":{"nodeType":"YulBlock","src":"5972:83:11","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490","nodeType":"YulIdentifier","src":"5974:77:11"},"nodeType":"YulFunctionCall","src":"5974:79:11"},"nodeType":"YulExpressionStatement","src":"5974:79:11"}]},"condition":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"5944:6:11"},{"kind":"number","nodeType":"YulLiteral","src":"5952:18:11","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"5941:2:11"},"nodeType":"YulFunctionCall","src":"5941:30:11"},"nodeType":"YulIf","src":"5938:117:11"},{"nodeType":"YulAssignment","src":"6064:29:11","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"6080:6:11"},{"kind":"number","nodeType":"YulLiteral","src":"6088:4:11","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6076:3:11"},"nodeType":"YulFunctionCall","src":"6076:17:11"},"variableNames":[{"name":"arrayPos","nodeType":"YulIdentifier","src":"6064:8:11"}]},{"body":{"nodeType":"YulBlock","src":"6147:83:11","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef","nodeType":"YulIdentifier","src":"6149:77:11"},"nodeType":"YulFunctionCall","src":"6149:79:11"},"nodeType":"YulExpressionStatement","src":"6149:79:11"}]},"condition":{"arguments":[{"arguments":[{"name":"arrayPos","nodeType":"YulIdentifier","src":"6112:8:11"},{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"6126:6:11"},{"kind":"number","nodeType":"YulLiteral","src":"6134:4:11","type":"","value":"0x20"}],"functionName":{"name":"mul","nodeType":"YulIdentifier","src":"6122:3:11"},"nodeType":"YulFunctionCall","src":"6122:17:11"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6108:3:11"},"nodeType":"YulFunctionCall","src":"6108:32:11"},{"name":"end","nodeType":"YulIdentifier","src":"6142:3:11"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"6105:2:11"},"nodeType":"YulFunctionCall","src":"6105:41:11"},"nodeType":"YulIf","src":"6102:128:11"}]},"name":"abi_decode_t_array$_t_uint256_$dyn_calldata_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"5725:6:11","type":""},{"name":"end","nodeType":"YulTypedName","src":"5733:3:11","type":""}],"returnVariables":[{"name":"arrayPos","nodeType":"YulTypedName","src":"5741:8:11","type":""},{"name":"length","nodeType":"YulTypedName","src":"5751:6:11","type":""}],"src":"5668:568:11"},{"body":{"nodeType":"YulBlock","src":"6429:1038:11","statements":[{"body":{"nodeType":"YulBlock","src":"6476:83:11","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nodeType":"YulIdentifier","src":"6478:77:11"},"nodeType":"YulFunctionCall","src":"6478:79:11"},"nodeType":"YulExpressionStatement","src":"6478:79:11"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"6450:7:11"},{"name":"headStart","nodeType":"YulIdentifier","src":"6459:9:11"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"6446:3:11"},"nodeType":"YulFunctionCall","src":"6446:23:11"},{"kind":"number","nodeType":"YulLiteral","src":"6471:3:11","type":"","value":"128"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"6442:3:11"},"nodeType":"YulFunctionCall","src":"6442:33:11"},"nodeType":"YulIf","src":"6439:120:11"},{"nodeType":"YulBlock","src":"6569:312:11","statements":[{"nodeType":"YulVariableDeclaration","src":"6584:45:11","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6615:9:11"},{"kind":"number","nodeType":"YulLiteral","src":"6626:1:11","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6611:3:11"},"nodeType":"YulFunctionCall","src":"6611:17:11"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"6598:12:11"},"nodeType":"YulFunctionCall","src":"6598:31:11"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"6588:6:11","type":""}]},{"body":{"nodeType":"YulBlock","src":"6676:83:11","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nodeType":"YulIdentifier","src":"6678:77:11"},"nodeType":"YulFunctionCall","src":"6678:79:11"},"nodeType":"YulExpressionStatement","src":"6678:79:11"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"6648:6:11"},{"kind":"number","nodeType":"YulLiteral","src":"6656:18:11","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"6645:2:11"},"nodeType":"YulFunctionCall","src":"6645:30:11"},"nodeType":"YulIf","src":"6642:117:11"},{"nodeType":"YulAssignment","src":"6773:98:11","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6843:9:11"},{"name":"offset","nodeType":"YulIdentifier","src":"6854:6:11"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6839:3:11"},"nodeType":"YulFunctionCall","src":"6839:22:11"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"6863:7:11"}],"functionName":{"name":"abi_decode_t_array$_t_address_$dyn_calldata_ptr","nodeType":"YulIdentifier","src":"6791:47:11"},"nodeType":"YulFunctionCall","src":"6791:80:11"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"6773:6:11"},{"name":"value1","nodeType":"YulIdentifier","src":"6781:6:11"}]}]},{"nodeType":"YulBlock","src":"6891:118:11","statements":[{"nodeType":"YulVariableDeclaration","src":"6906:16:11","value":{"kind":"number","nodeType":"YulLiteral","src":"6920:2:11","type":"","value":"32"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"6910:6:11","type":""}]},{"nodeType":"YulAssignment","src":"6936:63:11","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6971:9:11"},{"name":"offset","nodeType":"YulIdentifier","src":"6982:6:11"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6967:3:11"},"nodeType":"YulFunctionCall","src":"6967:22:11"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"6991:7:11"}],"functionName":{"name":"abi_decode_t_address","nodeType":"YulIdentifier","src":"6946:20:11"},"nodeType":"YulFunctionCall","src":"6946:53:11"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"6936:6:11"}]}]},{"nodeType":"YulBlock","src":"7019:118:11","statements":[{"nodeType":"YulVariableDeclaration","src":"7034:16:11","value":{"kind":"number","nodeType":"YulLiteral","src":"7048:2:11","type":"","value":"64"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"7038:6:11","type":""}]},{"nodeType":"YulAssignment","src":"7064:63:11","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7099:9:11"},{"name":"offset","nodeType":"YulIdentifier","src":"7110:6:11"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7095:3:11"},"nodeType":"YulFunctionCall","src":"7095:22:11"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"7119:7:11"}],"functionName":{"name":"abi_decode_t_address","nodeType":"YulIdentifier","src":"7074:20:11"},"nodeType":"YulFunctionCall","src":"7074:53:11"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"7064:6:11"}]}]},{"nodeType":"YulBlock","src":"7147:313:11","statements":[{"nodeType":"YulVariableDeclaration","src":"7162:46:11","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7193:9:11"},{"kind":"number","nodeType":"YulLiteral","src":"7204:2:11","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7189:3:11"},"nodeType":"YulFunctionCall","src":"7189:18:11"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"7176:12:11"},"nodeType":"YulFunctionCall","src":"7176:32:11"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"7166:6:11","type":""}]},{"body":{"nodeType":"YulBlock","src":"7255:83:11","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nodeType":"YulIdentifier","src":"7257:77:11"},"nodeType":"YulFunctionCall","src":"7257:79:11"},"nodeType":"YulExpressionStatement","src":"7257:79:11"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"7227:6:11"},{"kind":"number","nodeType":"YulLiteral","src":"7235:18:11","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"7224:2:11"},"nodeType":"YulFunctionCall","src":"7224:30:11"},"nodeType":"YulIf","src":"7221:117:11"},{"nodeType":"YulAssignment","src":"7352:98:11","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7422:9:11"},{"name":"offset","nodeType":"YulIdentifier","src":"7433:6:11"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7418:3:11"},"nodeType":"YulFunctionCall","src":"7418:22:11"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"7442:7:11"}],"functionName":{"name":"abi_decode_t_array$_t_uint256_$dyn_calldata_ptr","nodeType":"YulIdentifier","src":"7370:47:11"},"nodeType":"YulFunctionCall","src":"7370:80:11"},"variableNames":[{"name":"value4","nodeType":"YulIdentifier","src":"7352:6:11"},{"name":"value5","nodeType":"YulIdentifier","src":"7360:6:11"}]}]}]},"name":"abi_decode_tuple_t_array$_t_address_$dyn_calldata_ptrt_addresst_addresst_array$_t_uint256_$dyn_calldata_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6359:9:11","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"6370:7:11","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"6382:6:11","type":""},{"name":"value1","nodeType":"YulTypedName","src":"6390:6:11","type":""},{"name":"value2","nodeType":"YulTypedName","src":"6398:6:11","type":""},{"name":"value3","nodeType":"YulTypedName","src":"6406:6:11","type":""},{"name":"value4","nodeType":"YulTypedName","src":"6414:6:11","type":""},{"name":"value5","nodeType":"YulTypedName","src":"6422:6:11","type":""}],"src":"6242:1225:11"},{"body":{"nodeType":"YulBlock","src":"7501:152:11","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7518:1:11","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"7521:77:11","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7511:6:11"},"nodeType":"YulFunctionCall","src":"7511:88:11"},"nodeType":"YulExpressionStatement","src":"7511:88:11"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7615:1:11","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"7618:4:11","type":"","value":"0x41"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7608:6:11"},"nodeType":"YulFunctionCall","src":"7608:15:11"},"nodeType":"YulExpressionStatement","src":"7608:15:11"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7639:1:11","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"7642:4:11","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"7632:6:11"},"nodeType":"YulFunctionCall","src":"7632:15:11"},"nodeType":"YulExpressionStatement","src":"7632:15:11"}]},"name":"panic_error_0x41","nodeType":"YulFunctionDefinition","src":"7473:180:11"},{"body":{"nodeType":"YulBlock","src":"7687:152:11","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7704:1:11","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"7707:77:11","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7697:6:11"},"nodeType":"YulFunctionCall","src":"7697:88:11"},"nodeType":"YulExpressionStatement","src":"7697:88:11"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7801:1:11","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"7804:4:11","type":"","value":"0x32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7794:6:11"},"nodeType":"YulFunctionCall","src":"7794:15:11"},"nodeType":"YulExpressionStatement","src":"7794:15:11"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7825:1:11","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"7828:4:11","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"7818:6:11"},"nodeType":"YulFunctionCall","src":"7818:15:11"},"nodeType":"YulExpressionStatement","src":"7818:15:11"}]},"name":"panic_error_0x32","nodeType":"YulFunctionDefinition","src":"7659:180:11"},{"body":{"nodeType":"YulBlock","src":"7911:263:11","statements":[{"body":{"nodeType":"YulBlock","src":"7957:83:11","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nodeType":"YulIdentifier","src":"7959:77:11"},"nodeType":"YulFunctionCall","src":"7959:79:11"},"nodeType":"YulExpressionStatement","src":"7959:79:11"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"7932:7:11"},{"name":"headStart","nodeType":"YulIdentifier","src":"7941:9:11"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"7928:3:11"},"nodeType":"YulFunctionCall","src":"7928:23:11"},{"kind":"number","nodeType":"YulLiteral","src":"7953:2:11","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"7924:3:11"},"nodeType":"YulFunctionCall","src":"7924:32:11"},"nodeType":"YulIf","src":"7921:119:11"},{"nodeType":"YulBlock","src":"8050:117:11","statements":[{"nodeType":"YulVariableDeclaration","src":"8065:15:11","value":{"kind":"number","nodeType":"YulLiteral","src":"8079:1:11","type":"","value":"0"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"8069:6:11","type":""}]},{"nodeType":"YulAssignment","src":"8094:63:11","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8129:9:11"},{"name":"offset","nodeType":"YulIdentifier","src":"8140:6:11"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8125:3:11"},"nodeType":"YulFunctionCall","src":"8125:22:11"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"8149:7:11"}],"functionName":{"name":"abi_decode_t_address","nodeType":"YulIdentifier","src":"8104:20:11"},"nodeType":"YulFunctionCall","src":"8104:53:11"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"8094:6:11"}]}]}]},"name":"abi_decode_tuple_t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"7881:9:11","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"7892:7:11","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"7904:6:11","type":""}],"src":"7845:329:11"},{"body":{"nodeType":"YulBlock","src":"8245:53:11","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"8262:3:11"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"8285:5:11"}],"functionName":{"name":"cleanup_t_address","nodeType":"YulIdentifier","src":"8267:17:11"},"nodeType":"YulFunctionCall","src":"8267:24:11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8255:6:11"},"nodeType":"YulFunctionCall","src":"8255:37:11"},"nodeType":"YulExpressionStatement","src":"8255:37:11"}]},"name":"abi_encode_t_address_to_t_address_fromStack","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"8233:5:11","type":""},{"name":"pos","nodeType":"YulTypedName","src":"8240:3:11","type":""}],"src":"8180:118:11"},{"body":{"nodeType":"YulBlock","src":"8402:124:11","statements":[{"nodeType":"YulAssignment","src":"8412:26:11","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8424:9:11"},{"kind":"number","nodeType":"YulLiteral","src":"8435:2:11","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8420:3:11"},"nodeType":"YulFunctionCall","src":"8420:18:11"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"8412:4:11"}]},{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"8492:6:11"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8505:9:11"},{"kind":"number","nodeType":"YulLiteral","src":"8516:1:11","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8501:3:11"},"nodeType":"YulFunctionCall","src":"8501:17:11"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nodeType":"YulIdentifier","src":"8448:43:11"},"nodeType":"YulFunctionCall","src":"8448:71:11"},"nodeType":"YulExpressionStatement","src":"8448:71:11"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"8374:9:11","type":""},{"name":"value0","nodeType":"YulTypedName","src":"8386:6:11","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"8397:4:11","type":""}],"src":"8304:222:11"},{"body":{"nodeType":"YulBlock","src":"8595:80:11","statements":[{"nodeType":"YulAssignment","src":"8605:22:11","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"8620:6:11"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"8614:5:11"},"nodeType":"YulFunctionCall","src":"8614:13:11"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"8605:5:11"}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"8663:5:11"}],"functionName":{"name":"validator_revert_t_uint256","nodeType":"YulIdentifier","src":"8636:26:11"},"nodeType":"YulFunctionCall","src":"8636:33:11"},"nodeType":"YulExpressionStatement","src":"8636:33:11"}]},"name":"abi_decode_t_uint256_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"8573:6:11","type":""},{"name":"end","nodeType":"YulTypedName","src":"8581:3:11","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"8589:5:11","type":""}],"src":"8532:143:11"},{"body":{"nodeType":"YulBlock","src":"8758:274:11","statements":[{"body":{"nodeType":"YulBlock","src":"8804:83:11","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nodeType":"YulIdentifier","src":"8806:77:11"},"nodeType":"YulFunctionCall","src":"8806:79:11"},"nodeType":"YulExpressionStatement","src":"8806:79:11"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"8779:7:11"},{"name":"headStart","nodeType":"YulIdentifier","src":"8788:9:11"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"8775:3:11"},"nodeType":"YulFunctionCall","src":"8775:23:11"},{"kind":"number","nodeType":"YulLiteral","src":"8800:2:11","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"8771:3:11"},"nodeType":"YulFunctionCall","src":"8771:32:11"},"nodeType":"YulIf","src":"8768:119:11"},{"nodeType":"YulBlock","src":"8897:128:11","statements":[{"nodeType":"YulVariableDeclaration","src":"8912:15:11","value":{"kind":"number","nodeType":"YulLiteral","src":"8926:1:11","type":"","value":"0"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"8916:6:11","type":""}]},{"nodeType":"YulAssignment","src":"8941:74:11","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8987:9:11"},{"name":"offset","nodeType":"YulIdentifier","src":"8998:6:11"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8983:3:11"},"nodeType":"YulFunctionCall","src":"8983:22:11"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"9007:7:11"}],"functionName":{"name":"abi_decode_t_uint256_fromMemory","nodeType":"YulIdentifier","src":"8951:31:11"},"nodeType":"YulFunctionCall","src":"8951:64:11"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"8941:6:11"}]}]}]},"name":"abi_decode_tuple_t_uint256_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"8728:9:11","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"8739:7:11","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"8751:6:11","type":""}],"src":"8681:351:11"},{"body":{"nodeType":"YulBlock","src":"9066:152:11","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9083:1:11","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"9086:77:11","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9076:6:11"},"nodeType":"YulFunctionCall","src":"9076:88:11"},"nodeType":"YulExpressionStatement","src":"9076:88:11"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9180:1:11","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"9183:4:11","type":"","value":"0x11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9173:6:11"},"nodeType":"YulFunctionCall","src":"9173:15:11"},"nodeType":"YulExpressionStatement","src":"9173:15:11"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9204:1:11","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"9207:4:11","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"9197:6:11"},"nodeType":"YulFunctionCall","src":"9197:15:11"},"nodeType":"YulExpressionStatement","src":"9197:15:11"}]},"name":"panic_error_0x11","nodeType":"YulFunctionDefinition","src":"9038:180:11"},{"body":{"nodeType":"YulBlock","src":"9267:190:11","statements":[{"nodeType":"YulAssignment","src":"9277:33:11","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"9304:5:11"}],"functionName":{"name":"cleanup_t_uint256","nodeType":"YulIdentifier","src":"9286:17:11"},"nodeType":"YulFunctionCall","src":"9286:24:11"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"9277:5:11"}]},{"body":{"nodeType":"YulBlock","src":"9400:22:11","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"9402:16:11"},"nodeType":"YulFunctionCall","src":"9402:18:11"},"nodeType":"YulExpressionStatement","src":"9402:18:11"}]},"condition":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"9325:5:11"},{"kind":"number","nodeType":"YulLiteral","src":"9332:66:11","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"9322:2:11"},"nodeType":"YulFunctionCall","src":"9322:77:11"},"nodeType":"YulIf","src":"9319:103:11"},{"nodeType":"YulAssignment","src":"9431:20:11","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"9442:5:11"},{"kind":"number","nodeType":"YulLiteral","src":"9449:1:11","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9438:3:11"},"nodeType":"YulFunctionCall","src":"9438:13:11"},"variableNames":[{"name":"ret","nodeType":"YulIdentifier","src":"9431:3:11"}]}]},"name":"increment_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"9253:5:11","type":""}],"returnVariables":[{"name":"ret","nodeType":"YulTypedName","src":"9263:3:11","type":""}],"src":"9224:233:11"},{"body":{"nodeType":"YulBlock","src":"9589:206:11","statements":[{"nodeType":"YulAssignment","src":"9599:26:11","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9611:9:11"},{"kind":"number","nodeType":"YulLiteral","src":"9622:2:11","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9607:3:11"},"nodeType":"YulFunctionCall","src":"9607:18:11"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"9599:4:11"}]},{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"9679:6:11"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9692:9:11"},{"kind":"number","nodeType":"YulLiteral","src":"9703:1:11","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9688:3:11"},"nodeType":"YulFunctionCall","src":"9688:17:11"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nodeType":"YulIdentifier","src":"9635:43:11"},"nodeType":"YulFunctionCall","src":"9635:71:11"},"nodeType":"YulExpressionStatement","src":"9635:71:11"},{"expression":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"9760:6:11"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9773:9:11"},{"kind":"number","nodeType":"YulLiteral","src":"9784:2:11","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9769:3:11"},"nodeType":"YulFunctionCall","src":"9769:18:11"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nodeType":"YulIdentifier","src":"9716:43:11"},"nodeType":"YulFunctionCall","src":"9716:72:11"},"nodeType":"YulExpressionStatement","src":"9716:72:11"}]},"name":"abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"9553:9:11","type":""},{"name":"value1","nodeType":"YulTypedName","src":"9565:6:11","type":""},{"name":"value0","nodeType":"YulTypedName","src":"9573:6:11","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"9584:4:11","type":""}],"src":"9463:332:11"},{"body":{"nodeType":"YulBlock","src":"9897:73:11","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"9914:3:11"},{"name":"length","nodeType":"YulIdentifier","src":"9919:6:11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9907:6:11"},"nodeType":"YulFunctionCall","src":"9907:19:11"},"nodeType":"YulExpressionStatement","src":"9907:19:11"},{"nodeType":"YulAssignment","src":"9935:29:11","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"9954:3:11"},{"kind":"number","nodeType":"YulLiteral","src":"9959:4:11","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9950:3:11"},"nodeType":"YulFunctionCall","src":"9950:14:11"},"variableNames":[{"name":"updated_pos","nodeType":"YulIdentifier","src":"9935:11:11"}]}]},"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"9869:3:11","type":""},{"name":"length","nodeType":"YulTypedName","src":"9874:6:11","type":""}],"returnVariables":[{"name":"updated_pos","nodeType":"YulTypedName","src":"9885:11:11","type":""}],"src":"9801:169:11"},{"body":{"nodeType":"YulBlock","src":"10082:57:11","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"10104:6:11"},{"kind":"number","nodeType":"YulLiteral","src":"10112:1:11","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10100:3:11"},"nodeType":"YulFunctionCall","src":"10100:14:11"},{"hexValue":"496e76616c696420746f6b656e","kind":"string","nodeType":"YulLiteral","src":"10116:15:11","type":"","value":"Invalid token"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10093:6:11"},"nodeType":"YulFunctionCall","src":"10093:39:11"},"nodeType":"YulExpressionStatement","src":"10093:39:11"}]},"name":"store_literal_in_memory_5e70ebd1d4072d337a7fabaa7bda70fa2633d6e3f89d5cb725a16b10d07e54c6","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nodeType":"YulTypedName","src":"10074:6:11","type":""}],"src":"9976:163:11"},{"body":{"nodeType":"YulBlock","src":"10291:220:11","statements":[{"nodeType":"YulAssignment","src":"10301:74:11","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"10367:3:11"},{"kind":"number","nodeType":"YulLiteral","src":"10372:2:11","type":"","value":"13"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nodeType":"YulIdentifier","src":"10308:58:11"},"nodeType":"YulFunctionCall","src":"10308:67:11"},"variableNames":[{"name":"pos","nodeType":"YulIdentifier","src":"10301:3:11"}]},{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"10473:3:11"}],"functionName":{"name":"store_literal_in_memory_5e70ebd1d4072d337a7fabaa7bda70fa2633d6e3f89d5cb725a16b10d07e54c6","nodeType":"YulIdentifier","src":"10384:88:11"},"nodeType":"YulFunctionCall","src":"10384:93:11"},"nodeType":"YulExpressionStatement","src":"10384:93:11"},{"nodeType":"YulAssignment","src":"10486:19:11","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"10497:3:11"},{"kind":"number","nodeType":"YulLiteral","src":"10502:2:11","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10493:3:11"},"nodeType":"YulFunctionCall","src":"10493:12:11"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"10486:3:11"}]}]},"name":"abi_encode_t_stringliteral_5e70ebd1d4072d337a7fabaa7bda70fa2633d6e3f89d5cb725a16b10d07e54c6_to_t_string_memory_ptr_fromStack","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"10279:3:11","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"10287:3:11","type":""}],"src":"10145:366:11"},{"body":{"nodeType":"YulBlock","src":"10688:248:11","statements":[{"nodeType":"YulAssignment","src":"10698:26:11","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10710:9:11"},{"kind":"number","nodeType":"YulLiteral","src":"10721:2:11","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10706:3:11"},"nodeType":"YulFunctionCall","src":"10706:18:11"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"10698:4:11"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10745:9:11"},{"kind":"number","nodeType":"YulLiteral","src":"10756:1:11","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10741:3:11"},"nodeType":"YulFunctionCall","src":"10741:17:11"},{"arguments":[{"name":"tail","nodeType":"YulIdentifier","src":"10764:4:11"},{"name":"headStart","nodeType":"YulIdentifier","src":"10770:9:11"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"10760:3:11"},"nodeType":"YulFunctionCall","src":"10760:20:11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10734:6:11"},"nodeType":"YulFunctionCall","src":"10734:47:11"},"nodeType":"YulExpressionStatement","src":"10734:47:11"},{"nodeType":"YulAssignment","src":"10790:139:11","value":{"arguments":[{"name":"tail","nodeType":"YulIdentifier","src":"10924:4:11"}],"functionName":{"name":"abi_encode_t_stringliteral_5e70ebd1d4072d337a7fabaa7bda70fa2633d6e3f89d5cb725a16b10d07e54c6_to_t_string_memory_ptr_fromStack","nodeType":"YulIdentifier","src":"10798:124:11"},"nodeType":"YulFunctionCall","src":"10798:131:11"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"10790:4:11"}]}]},"name":"abi_encode_tuple_t_stringliteral_5e70ebd1d4072d337a7fabaa7bda70fa2633d6e3f89d5cb725a16b10d07e54c6__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"10668:9:11","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"10683:4:11","type":""}],"src":"10517:419:11"},{"body":{"nodeType":"YulBlock","src":"11048:63:11","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"11070:6:11"},{"kind":"number","nodeType":"YulLiteral","src":"11078:1:11","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11066:3:11"},"nodeType":"YulFunctionCall","src":"11066:14:11"},{"hexValue":"496e76616c69642064657374696e6174696f6e","kind":"string","nodeType":"YulLiteral","src":"11082:21:11","type":"","value":"Invalid destination"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11059:6:11"},"nodeType":"YulFunctionCall","src":"11059:45:11"},"nodeType":"YulExpressionStatement","src":"11059:45:11"}]},"name":"store_literal_in_memory_480a3d2cf1e4838d740f40eac57f23eb6facc0baaf1a65a7b61df6a5a00ed368","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nodeType":"YulTypedName","src":"11040:6:11","type":""}],"src":"10942:169:11"},{"body":{"nodeType":"YulBlock","src":"11263:220:11","statements":[{"nodeType":"YulAssignment","src":"11273:74:11","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"11339:3:11"},{"kind":"number","nodeType":"YulLiteral","src":"11344:2:11","type":"","value":"19"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nodeType":"YulIdentifier","src":"11280:58:11"},"nodeType":"YulFunctionCall","src":"11280:67:11"},"variableNames":[{"name":"pos","nodeType":"YulIdentifier","src":"11273:3:11"}]},{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"11445:3:11"}],"functionName":{"name":"store_literal_in_memory_480a3d2cf1e4838d740f40eac57f23eb6facc0baaf1a65a7b61df6a5a00ed368","nodeType":"YulIdentifier","src":"11356:88:11"},"nodeType":"YulFunctionCall","src":"11356:93:11"},"nodeType":"YulExpressionStatement","src":"11356:93:11"},{"nodeType":"YulAssignment","src":"11458:19:11","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"11469:3:11"},{"kind":"number","nodeType":"YulLiteral","src":"11474:2:11","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11465:3:11"},"nodeType":"YulFunctionCall","src":"11465:12:11"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"11458:3:11"}]}]},"name":"abi_encode_t_stringliteral_480a3d2cf1e4838d740f40eac57f23eb6facc0baaf1a65a7b61df6a5a00ed368_to_t_string_memory_ptr_fromStack","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"11251:3:11","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"11259:3:11","type":""}],"src":"11117:366:11"},{"body":{"nodeType":"YulBlock","src":"11660:248:11","statements":[{"nodeType":"YulAssignment","src":"11670:26:11","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11682:9:11"},{"kind":"number","nodeType":"YulLiteral","src":"11693:2:11","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11678:3:11"},"nodeType":"YulFunctionCall","src":"11678:18:11"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"11670:4:11"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11717:9:11"},{"kind":"number","nodeType":"YulLiteral","src":"11728:1:11","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11713:3:11"},"nodeType":"YulFunctionCall","src":"11713:17:11"},{"arguments":[{"name":"tail","nodeType":"YulIdentifier","src":"11736:4:11"},{"name":"headStart","nodeType":"YulIdentifier","src":"11742:9:11"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"11732:3:11"},"nodeType":"YulFunctionCall","src":"11732:20:11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11706:6:11"},"nodeType":"YulFunctionCall","src":"11706:47:11"},"nodeType":"YulExpressionStatement","src":"11706:47:11"},{"nodeType":"YulAssignment","src":"11762:139:11","value":{"arguments":[{"name":"tail","nodeType":"YulIdentifier","src":"11896:4:11"}],"functionName":{"name":"abi_encode_t_stringliteral_480a3d2cf1e4838d740f40eac57f23eb6facc0baaf1a65a7b61df6a5a00ed368_to_t_string_memory_ptr_fromStack","nodeType":"YulIdentifier","src":"11770:124:11"},"nodeType":"YulFunctionCall","src":"11770:131:11"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"11762:4:11"}]}]},"name":"abi_encode_tuple_t_stringliteral_480a3d2cf1e4838d740f40eac57f23eb6facc0baaf1a65a7b61df6a5a00ed368__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"11640:9:11","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"11655:4:11","type":""}],"src":"11489:419:11"},{"body":{"nodeType":"YulBlock","src":"12020:58:11","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"12042:6:11"},{"kind":"number","nodeType":"YulLiteral","src":"12050:1:11","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12038:3:11"},"nodeType":"YulFunctionCall","src":"12038:14:11"},{"hexValue":"496e76616c696420736f75726365","kind":"string","nodeType":"YulLiteral","src":"12054:16:11","type":"","value":"Invalid source"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12031:6:11"},"nodeType":"YulFunctionCall","src":"12031:40:11"},"nodeType":"YulExpressionStatement","src":"12031:40:11"}]},"name":"store_literal_in_memory_3191da89117a1b0027f3623a186706fe04c82acd10c13dd219b922faa6967c0e","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nodeType":"YulTypedName","src":"12012:6:11","type":""}],"src":"11914:164:11"},{"body":{"nodeType":"YulBlock","src":"12230:220:11","statements":[{"nodeType":"YulAssignment","src":"12240:74:11","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"12306:3:11"},{"kind":"number","nodeType":"YulLiteral","src":"12311:2:11","type":"","value":"14"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nodeType":"YulIdentifier","src":"12247:58:11"},"nodeType":"YulFunctionCall","src":"12247:67:11"},"variableNames":[{"name":"pos","nodeType":"YulIdentifier","src":"12240:3:11"}]},{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"12412:3:11"}],"functionName":{"name":"store_literal_in_memory_3191da89117a1b0027f3623a186706fe04c82acd10c13dd219b922faa6967c0e","nodeType":"YulIdentifier","src":"12323:88:11"},"nodeType":"YulFunctionCall","src":"12323:93:11"},"nodeType":"YulExpressionStatement","src":"12323:93:11"},{"nodeType":"YulAssignment","src":"12425:19:11","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"12436:3:11"},{"kind":"number","nodeType":"YulLiteral","src":"12441:2:11","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12432:3:11"},"nodeType":"YulFunctionCall","src":"12432:12:11"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"12425:3:11"}]}]},"name":"abi_encode_t_stringliteral_3191da89117a1b0027f3623a186706fe04c82acd10c13dd219b922faa6967c0e_to_t_string_memory_ptr_fromStack","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"12218:3:11","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"12226:3:11","type":""}],"src":"12084:366:11"},{"body":{"nodeType":"YulBlock","src":"12627:248:11","statements":[{"nodeType":"YulAssignment","src":"12637:26:11","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12649:9:11"},{"kind":"number","nodeType":"YulLiteral","src":"12660:2:11","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12645:3:11"},"nodeType":"YulFunctionCall","src":"12645:18:11"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"12637:4:11"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12684:9:11"},{"kind":"number","nodeType":"YulLiteral","src":"12695:1:11","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12680:3:11"},"nodeType":"YulFunctionCall","src":"12680:17:11"},{"arguments":[{"name":"tail","nodeType":"YulIdentifier","src":"12703:4:11"},{"name":"headStart","nodeType":"YulIdentifier","src":"12709:9:11"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"12699:3:11"},"nodeType":"YulFunctionCall","src":"12699:20:11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12673:6:11"},"nodeType":"YulFunctionCall","src":"12673:47:11"},"nodeType":"YulExpressionStatement","src":"12673:47:11"},{"nodeType":"YulAssignment","src":"12729:139:11","value":{"arguments":[{"name":"tail","nodeType":"YulIdentifier","src":"12863:4:11"}],"functionName":{"name":"abi_encode_t_stringliteral_3191da89117a1b0027f3623a186706fe04c82acd10c13dd219b922faa6967c0e_to_t_string_memory_ptr_fromStack","nodeType":"YulIdentifier","src":"12737:124:11"},"nodeType":"YulFunctionCall","src":"12737:131:11"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"12729:4:11"}]}]},"name":"abi_encode_tuple_t_stringliteral_3191da89117a1b0027f3623a186706fe04c82acd10c13dd219b922faa6967c0e__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"12607:9:11","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"12622:4:11","type":""}],"src":"12456:419:11"},{"body":{"nodeType":"YulBlock","src":"12987:73:11","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"13009:6:11"},{"kind":"number","nodeType":"YulLiteral","src":"13017:1:11","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13005:3:11"},"nodeType":"YulFunctionCall","src":"13005:14:11"},{"hexValue":"416d6f756e74206d7573742062652067726561746572207468616e2030","kind":"string","nodeType":"YulLiteral","src":"13021:31:11","type":"","value":"Amount must be greater than 0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12998:6:11"},"nodeType":"YulFunctionCall","src":"12998:55:11"},"nodeType":"YulExpressionStatement","src":"12998:55:11"}]},"name":"store_literal_in_memory_3e76f273c719bb7d23db533a2dc9a822ae7d899fcd42eb8910272e24764e8296","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nodeType":"YulTypedName","src":"12979:6:11","type":""}],"src":"12881:179:11"},{"body":{"nodeType":"YulBlock","src":"13212:220:11","statements":[{"nodeType":"YulAssignment","src":"13222:74:11","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"13288:3:11"},{"kind":"number","nodeType":"YulLiteral","src":"13293:2:11","type":"","value":"29"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nodeType":"YulIdentifier","src":"13229:58:11"},"nodeType":"YulFunctionCall","src":"13229:67:11"},"variableNames":[{"name":"pos","nodeType":"YulIdentifier","src":"13222:3:11"}]},{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"13394:3:11"}],"functionName":{"name":"store_literal_in_memory_3e76f273c719bb7d23db533a2dc9a822ae7d899fcd42eb8910272e24764e8296","nodeType":"YulIdentifier","src":"13305:88:11"},"nodeType":"YulFunctionCall","src":"13305:93:11"},"nodeType":"YulExpressionStatement","src":"13305:93:11"},{"nodeType":"YulAssignment","src":"13407:19:11","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"13418:3:11"},{"kind":"number","nodeType":"YulLiteral","src":"13423:2:11","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13414:3:11"},"nodeType":"YulFunctionCall","src":"13414:12:11"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"13407:3:11"}]}]},"name":"abi_encode_t_stringliteral_3e76f273c719bb7d23db533a2dc9a822ae7d899fcd42eb8910272e24764e8296_to_t_string_memory_ptr_fromStack","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"13200:3:11","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"13208:3:11","type":""}],"src":"13066:366:11"},{"body":{"nodeType":"YulBlock","src":"13609:248:11","statements":[{"nodeType":"YulAssignment","src":"13619:26:11","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13631:9:11"},{"kind":"number","nodeType":"YulLiteral","src":"13642:2:11","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13627:3:11"},"nodeType":"YulFunctionCall","src":"13627:18:11"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"13619:4:11"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13666:9:11"},{"kind":"number","nodeType":"YulLiteral","src":"13677:1:11","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13662:3:11"},"nodeType":"YulFunctionCall","src":"13662:17:11"},{"arguments":[{"name":"tail","nodeType":"YulIdentifier","src":"13685:4:11"},{"name":"headStart","nodeType":"YulIdentifier","src":"13691:9:11"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"13681:3:11"},"nodeType":"YulFunctionCall","src":"13681:20:11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13655:6:11"},"nodeType":"YulFunctionCall","src":"13655:47:11"},"nodeType":"YulExpressionStatement","src":"13655:47:11"},{"nodeType":"YulAssignment","src":"13711:139:11","value":{"arguments":[{"name":"tail","nodeType":"YulIdentifier","src":"13845:4:11"}],"functionName":{"name":"abi_encode_t_stringliteral_3e76f273c719bb7d23db533a2dc9a822ae7d899fcd42eb8910272e24764e8296_to_t_string_memory_ptr_fromStack","nodeType":"YulIdentifier","src":"13719:124:11"},"nodeType":"YulFunctionCall","src":"13719:131:11"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"13711:4:11"}]}]},"name":"abi_encode_tuple_t_stringliteral_3e76f273c719bb7d23db533a2dc9a822ae7d899fcd42eb8910272e24764e8296__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"13589:9:11","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"13604:4:11","type":""}],"src":"13438:419:11"},{"body":{"nodeType":"YulBlock","src":"13969:66:11","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"13991:6:11"},{"kind":"number","nodeType":"YulLiteral","src":"13999:1:11","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13987:3:11"},"nodeType":"YulFunctionCall","src":"13987:14:11"},{"hexValue":"496e73756666696369656e7420616c6c6f77616e6365","kind":"string","nodeType":"YulLiteral","src":"14003:24:11","type":"","value":"Insufficient allowance"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13980:6:11"},"nodeType":"YulFunctionCall","src":"13980:48:11"},"nodeType":"YulExpressionStatement","src":"13980:48:11"}]},"name":"store_literal_in_memory_45e3d26e36c3151c7f92a1eee9add9658cbb8e14605ee2452ec007389b9744bc","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nodeType":"YulTypedName","src":"13961:6:11","type":""}],"src":"13863:172:11"},{"body":{"nodeType":"YulBlock","src":"14187:220:11","statements":[{"nodeType":"YulAssignment","src":"14197:74:11","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"14263:3:11"},{"kind":"number","nodeType":"YulLiteral","src":"14268:2:11","type":"","value":"22"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nodeType":"YulIdentifier","src":"14204:58:11"},"nodeType":"YulFunctionCall","src":"14204:67:11"},"variableNames":[{"name":"pos","nodeType":"YulIdentifier","src":"14197:3:11"}]},{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"14369:3:11"}],"functionName":{"name":"store_literal_in_memory_45e3d26e36c3151c7f92a1eee9add9658cbb8e14605ee2452ec007389b9744bc","nodeType":"YulIdentifier","src":"14280:88:11"},"nodeType":"YulFunctionCall","src":"14280:93:11"},"nodeType":"YulExpressionStatement","src":"14280:93:11"},{"nodeType":"YulAssignment","src":"14382:19:11","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"14393:3:11"},{"kind":"number","nodeType":"YulLiteral","src":"14398:2:11","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14389:3:11"},"nodeType":"YulFunctionCall","src":"14389:12:11"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"14382:3:11"}]}]},"name":"abi_encode_t_stringliteral_45e3d26e36c3151c7f92a1eee9add9658cbb8e14605ee2452ec007389b9744bc_to_t_string_memory_ptr_fromStack","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"14175:3:11","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"14183:3:11","type":""}],"src":"14041:366:11"},{"body":{"nodeType":"YulBlock","src":"14584:248:11","statements":[{"nodeType":"YulAssignment","src":"14594:26:11","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14606:9:11"},{"kind":"number","nodeType":"YulLiteral","src":"14617:2:11","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14602:3:11"},"nodeType":"YulFunctionCall","src":"14602:18:11"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"14594:4:11"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14641:9:11"},{"kind":"number","nodeType":"YulLiteral","src":"14652:1:11","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14637:3:11"},"nodeType":"YulFunctionCall","src":"14637:17:11"},{"arguments":[{"name":"tail","nodeType":"YulIdentifier","src":"14660:4:11"},{"name":"headStart","nodeType":"YulIdentifier","src":"14666:9:11"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"14656:3:11"},"nodeType":"YulFunctionCall","src":"14656:20:11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14630:6:11"},"nodeType":"YulFunctionCall","src":"14630:47:11"},"nodeType":"YulExpressionStatement","src":"14630:47:11"},{"nodeType":"YulAssignment","src":"14686:139:11","value":{"arguments":[{"name":"tail","nodeType":"YulIdentifier","src":"14820:4:11"}],"functionName":{"name":"abi_encode_t_stringliteral_45e3d26e36c3151c7f92a1eee9add9658cbb8e14605ee2452ec007389b9744bc_to_t_string_memory_ptr_fromStack","nodeType":"YulIdentifier","src":"14694:124:11"},"nodeType":"YulFunctionCall","src":"14694:131:11"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"14686:4:11"}]}]},"name":"abi_encode_tuple_t_stringliteral_45e3d26e36c3151c7f92a1eee9add9658cbb8e14605ee2452ec007389b9744bc__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"14564:9:11","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"14579:4:11","type":""}],"src":"14413:419:11"},{"body":{"nodeType":"YulBlock","src":"14903:53:11","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"14920:3:11"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"14943:5:11"}],"functionName":{"name":"cleanup_t_uint256","nodeType":"YulIdentifier","src":"14925:17:11"},"nodeType":"YulFunctionCall","src":"14925:24:11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14913:6:11"},"nodeType":"YulFunctionCall","src":"14913:37:11"},"nodeType":"YulExpressionStatement","src":"14913:37:11"}]},"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"14891:5:11","type":""},{"name":"pos","nodeType":"YulTypedName","src":"14898:3:11","type":""}],"src":"14838:118:11"},{"body":{"nodeType":"YulBlock","src":"15060:124:11","statements":[{"nodeType":"YulAssignment","src":"15070:26:11","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15082:9:11"},{"kind":"number","nodeType":"YulLiteral","src":"15093:2:11","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15078:3:11"},"nodeType":"YulFunctionCall","src":"15078:18:11"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"15070:4:11"}]},{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"15150:6:11"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15163:9:11"},{"kind":"number","nodeType":"YulLiteral","src":"15174:1:11","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15159:3:11"},"nodeType":"YulFunctionCall","src":"15159:17:11"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nodeType":"YulIdentifier","src":"15106:43:11"},"nodeType":"YulFunctionCall","src":"15106:71:11"},"nodeType":"YulExpressionStatement","src":"15106:71:11"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"15032:9:11","type":""},{"name":"value0","nodeType":"YulTypedName","src":"15044:6:11","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"15055:4:11","type":""}],"src":"14962:222:11"},{"body":{"nodeType":"YulBlock","src":"15296:66:11","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"15318:6:11"},{"kind":"number","nodeType":"YulLiteral","src":"15326:1:11","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15314:3:11"},"nodeType":"YulFunctionCall","src":"15314:14:11"},{"hexValue":"417272617973206c656e677468206d69736d61746368","kind":"string","nodeType":"YulLiteral","src":"15330:24:11","type":"","value":"Arrays length mismatch"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15307:6:11"},"nodeType":"YulFunctionCall","src":"15307:48:11"},"nodeType":"YulExpressionStatement","src":"15307:48:11"}]},"name":"store_literal_in_memory_582fd48f3876d7686bfeaaaa0db0589073271dedd50d66094f02fee2a3d2e01c","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nodeType":"YulTypedName","src":"15288:6:11","type":""}],"src":"15190:172:11"},{"body":{"nodeType":"YulBlock","src":"15514:220:11","statements":[{"nodeType":"YulAssignment","src":"15524:74:11","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"15590:3:11"},{"kind":"number","nodeType":"YulLiteral","src":"15595:2:11","type":"","value":"22"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nodeType":"YulIdentifier","src":"15531:58:11"},"nodeType":"YulFunctionCall","src":"15531:67:11"},"variableNames":[{"name":"pos","nodeType":"YulIdentifier","src":"15524:3:11"}]},{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"15696:3:11"}],"functionName":{"name":"store_literal_in_memory_582fd48f3876d7686bfeaaaa0db0589073271dedd50d66094f02fee2a3d2e01c","nodeType":"YulIdentifier","src":"15607:88:11"},"nodeType":"YulFunctionCall","src":"15607:93:11"},"nodeType":"YulExpressionStatement","src":"15607:93:11"},{"nodeType":"YulAssignment","src":"15709:19:11","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"15720:3:11"},{"kind":"number","nodeType":"YulLiteral","src":"15725:2:11","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15716:3:11"},"nodeType":"YulFunctionCall","src":"15716:12:11"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"15709:3:11"}]}]},"name":"abi_encode_t_stringliteral_582fd48f3876d7686bfeaaaa0db0589073271dedd50d66094f02fee2a3d2e01c_to_t_string_memory_ptr_fromStack","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"15502:3:11","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"15510:3:11","type":""}],"src":"15368:366:11"},{"body":{"nodeType":"YulBlock","src":"15911:248:11","statements":[{"nodeType":"YulAssignment","src":"15921:26:11","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15933:9:11"},{"kind":"number","nodeType":"YulLiteral","src":"15944:2:11","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15929:3:11"},"nodeType":"YulFunctionCall","src":"15929:18:11"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"15921:4:11"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15968:9:11"},{"kind":"number","nodeType":"YulLiteral","src":"15979:1:11","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15964:3:11"},"nodeType":"YulFunctionCall","src":"15964:17:11"},{"arguments":[{"name":"tail","nodeType":"YulIdentifier","src":"15987:4:11"},{"name":"headStart","nodeType":"YulIdentifier","src":"15993:9:11"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"15983:3:11"},"nodeType":"YulFunctionCall","src":"15983:20:11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15957:6:11"},"nodeType":"YulFunctionCall","src":"15957:47:11"},"nodeType":"YulExpressionStatement","src":"15957:47:11"},{"nodeType":"YulAssignment","src":"16013:139:11","value":{"arguments":[{"name":"tail","nodeType":"YulIdentifier","src":"16147:4:11"}],"functionName":{"name":"abi_encode_t_stringliteral_582fd48f3876d7686bfeaaaa0db0589073271dedd50d66094f02fee2a3d2e01c_to_t_string_memory_ptr_fromStack","nodeType":"YulIdentifier","src":"16021:124:11"},"nodeType":"YulFunctionCall","src":"16021:131:11"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"16013:4:11"}]}]},"name":"abi_encode_tuple_t_stringliteral_582fd48f3876d7686bfeaaaa0db0589073271dedd50d66094f02fee2a3d2e01c__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"15891:9:11","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"15906:4:11","type":""}],"src":"15740:419:11"},{"body":{"nodeType":"YulBlock","src":"16271:56:11","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"16293:6:11"},{"kind":"number","nodeType":"YulLiteral","src":"16301:1:11","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16289:3:11"},"nodeType":"YulFunctionCall","src":"16289:14:11"},{"hexValue":"456d70747920617272617973","kind":"string","nodeType":"YulLiteral","src":"16305:14:11","type":"","value":"Empty arrays"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16282:6:11"},"nodeType":"YulFunctionCall","src":"16282:38:11"},"nodeType":"YulExpressionStatement","src":"16282:38:11"}]},"name":"store_literal_in_memory_920fc87d8e9a45232b5e4c2c36e3c0fff5f09b5434a80d6ec35d7f09f9d69c29","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nodeType":"YulTypedName","src":"16263:6:11","type":""}],"src":"16165:162:11"},{"body":{"nodeType":"YulBlock","src":"16479:220:11","statements":[{"nodeType":"YulAssignment","src":"16489:74:11","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"16555:3:11"},{"kind":"number","nodeType":"YulLiteral","src":"16560:2:11","type":"","value":"12"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nodeType":"YulIdentifier","src":"16496:58:11"},"nodeType":"YulFunctionCall","src":"16496:67:11"},"variableNames":[{"name":"pos","nodeType":"YulIdentifier","src":"16489:3:11"}]},{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"16661:3:11"}],"functionName":{"name":"store_literal_in_memory_920fc87d8e9a45232b5e4c2c36e3c0fff5f09b5434a80d6ec35d7f09f9d69c29","nodeType":"YulIdentifier","src":"16572:88:11"},"nodeType":"YulFunctionCall","src":"16572:93:11"},"nodeType":"YulExpressionStatement","src":"16572:93:11"},{"nodeType":"YulAssignment","src":"16674:19:11","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"16685:3:11"},{"kind":"number","nodeType":"YulLiteral","src":"16690:2:11","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16681:3:11"},"nodeType":"YulFunctionCall","src":"16681:12:11"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"16674:3:11"}]}]},"name":"abi_encode_t_stringliteral_920fc87d8e9a45232b5e4c2c36e3c0fff5f09b5434a80d6ec35d7f09f9d69c29_to_t_string_memory_ptr_fromStack","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"16467:3:11","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"16475:3:11","type":""}],"src":"16333:366:11"},{"body":{"nodeType":"YulBlock","src":"16876:248:11","statements":[{"nodeType":"YulAssignment","src":"16886:26:11","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16898:9:11"},{"kind":"number","nodeType":"YulLiteral","src":"16909:2:11","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16894:3:11"},"nodeType":"YulFunctionCall","src":"16894:18:11"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"16886:4:11"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16933:9:11"},{"kind":"number","nodeType":"YulLiteral","src":"16944:1:11","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16929:3:11"},"nodeType":"YulFunctionCall","src":"16929:17:11"},{"arguments":[{"name":"tail","nodeType":"YulIdentifier","src":"16952:4:11"},{"name":"headStart","nodeType":"YulIdentifier","src":"16958:9:11"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"16948:3:11"},"nodeType":"YulFunctionCall","src":"16948:20:11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16922:6:11"},"nodeType":"YulFunctionCall","src":"16922:47:11"},"nodeType":"YulExpressionStatement","src":"16922:47:11"},{"nodeType":"YulAssignment","src":"16978:139:11","value":{"arguments":[{"name":"tail","nodeType":"YulIdentifier","src":"17112:4:11"}],"functionName":{"name":"abi_encode_t_stringliteral_920fc87d8e9a45232b5e4c2c36e3c0fff5f09b5434a80d6ec35d7f09f9d69c29_to_t_string_memory_ptr_fromStack","nodeType":"YulIdentifier","src":"16986:124:11"},"nodeType":"YulFunctionCall","src":"16986:131:11"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"16978:4:11"}]}]},"name":"abi_encode_tuple_t_stringliteral_920fc87d8e9a45232b5e4c2c36e3c0fff5f09b5434a80d6ec35d7f09f9d69c29__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"16856:9:11","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"16871:4:11","type":""}],"src":"16705:419:11"},{"body":{"nodeType":"YulBlock","src":"17284:288:11","statements":[{"nodeType":"YulAssignment","src":"17294:26:11","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17306:9:11"},{"kind":"number","nodeType":"YulLiteral","src":"17317:2:11","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17302:3:11"},"nodeType":"YulFunctionCall","src":"17302:18:11"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"17294:4:11"}]},{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"17374:6:11"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17387:9:11"},{"kind":"number","nodeType":"YulLiteral","src":"17398:1:11","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17383:3:11"},"nodeType":"YulFunctionCall","src":"17383:17:11"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nodeType":"YulIdentifier","src":"17330:43:11"},"nodeType":"YulFunctionCall","src":"17330:71:11"},"nodeType":"YulExpressionStatement","src":"17330:71:11"},{"expression":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"17455:6:11"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17468:9:11"},{"kind":"number","nodeType":"YulLiteral","src":"17479:2:11","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17464:3:11"},"nodeType":"YulFunctionCall","src":"17464:18:11"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nodeType":"YulIdentifier","src":"17411:43:11"},"nodeType":"YulFunctionCall","src":"17411:72:11"},"nodeType":"YulExpressionStatement","src":"17411:72:11"},{"expression":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"17537:6:11"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17550:9:11"},{"kind":"number","nodeType":"YulLiteral","src":"17561:2:11","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17546:3:11"},"nodeType":"YulFunctionCall","src":"17546:18:11"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nodeType":"YulIdentifier","src":"17493:43:11"},"nodeType":"YulFunctionCall","src":"17493:72:11"},"nodeType":"YulExpressionStatement","src":"17493:72:11"}]},"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":"17240:9:11","type":""},{"name":"value2","nodeType":"YulTypedName","src":"17252:6:11","type":""},{"name":"value1","nodeType":"YulTypedName","src":"17260:6:11","type":""},{"name":"value0","nodeType":"YulTypedName","src":"17268:6:11","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"17279:4:11","type":""}],"src":"17130:442:11"}]},"contents":"{\n\n    function allocate_unbounded() -> memPtr {\n        memPtr := mload(64)\n    }\n\n    function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n        revert(0, 0)\n    }\n\n    function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n        revert(0, 0)\n    }\n\n    function revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() {\n        revert(0, 0)\n    }\n\n    function revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490() {\n        revert(0, 0)\n    }\n\n    function revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef() {\n        revert(0, 0)\n    }\n\n    // address[]\n    function abi_decode_t_array$_t_address_$dyn_calldata_ptr(offset, end) -> arrayPos, length {\n        if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n        length := calldataload(offset)\n        if gt(length, 0xffffffffffffffff) { revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490() }\n        arrayPos := add(offset, 0x20)\n        if gt(add(arrayPos, mul(length, 0x20)), end) { revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef() }\n    }\n\n    function cleanup_t_uint160(value) -> cleaned {\n        cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n    }\n\n    function cleanup_t_address(value) -> cleaned {\n        cleaned := cleanup_t_uint160(value)\n    }\n\n    function validator_revert_t_address(value) {\n        if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_address(offset, end) -> value {\n        value := calldataload(offset)\n        validator_revert_t_address(value)\n    }\n\n    function abi_decode_tuple_t_array$_t_address_$dyn_calldata_ptrt_address(headStart, dataEnd) -> value0, value1, value2 {\n        if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := calldataload(add(headStart, 0))\n            if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n            value0, value1 := abi_decode_t_array$_t_address_$dyn_calldata_ptr(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 32\n\n            value2 := abi_decode_t_address(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function array_length_t_array$_t_uint256_$dyn_memory_ptr(value) -> length {\n\n        length := mload(value)\n\n    }\n\n    function array_storeLengthForEncoding_t_array$_t_uint256_$dyn_memory_ptr_fromStack(pos, length) -> updated_pos {\n        mstore(pos, length)\n        updated_pos := add(pos, 0x20)\n    }\n\n    function array_dataslot_t_array$_t_uint256_$dyn_memory_ptr(ptr) -> data {\n        data := ptr\n\n        data := add(ptr, 0x20)\n\n    }\n\n    function cleanup_t_uint256(value) -> cleaned {\n        cleaned := value\n    }\n\n    function abi_encode_t_uint256_to_t_uint256(value, pos) {\n        mstore(pos, cleanup_t_uint256(value))\n    }\n\n    function abi_encodeUpdatedPos_t_uint256_to_t_uint256(value0, pos) -> updatedPos {\n        abi_encode_t_uint256_to_t_uint256(value0, pos)\n        updatedPos := add(pos, 0x20)\n    }\n\n    function array_nextElement_t_array$_t_uint256_$dyn_memory_ptr(ptr) -> next {\n        next := add(ptr, 0x20)\n    }\n\n    // uint256[] -> uint256[]\n    function abi_encode_t_array$_t_uint256_$dyn_memory_ptr_to_t_array$_t_uint256_$dyn_memory_ptr_fromStack(value, pos)  -> end  {\n        let length := array_length_t_array$_t_uint256_$dyn_memory_ptr(value)\n        pos := array_storeLengthForEncoding_t_array$_t_uint256_$dyn_memory_ptr_fromStack(pos, length)\n        let baseRef := array_dataslot_t_array$_t_uint256_$dyn_memory_ptr(value)\n        let srcPtr := baseRef\n        for { let i := 0 } lt(i, length) { i := add(i, 1) }\n        {\n            let elementValue0 := mload(srcPtr)\n            pos := abi_encodeUpdatedPos_t_uint256_to_t_uint256(elementValue0, pos)\n            srcPtr := array_nextElement_t_array$_t_uint256_$dyn_memory_ptr(srcPtr)\n        }\n        end := pos\n    }\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        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_array$_t_uint256_$dyn_memory_ptr_to_t_array$_t_uint256_$dyn_memory_ptr_fromStack(value0,  tail)\n\n    }\n\n    function validator_revert_t_uint256(value) {\n        if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_uint256(offset, end) -> value {\n        value := calldataload(offset)\n        validator_revert_t_uint256(value)\n    }\n\n    function abi_decode_tuple_t_addresst_addresst_addresst_uint256(headStart, dataEnd) -> value0, value1, value2, value3 {\n        if slt(sub(dataEnd, headStart), 128) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 32\n\n            value1 := abi_decode_t_address(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 64\n\n            value2 := abi_decode_t_address(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 96\n\n            value3 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    // uint256[]\n    function abi_decode_t_array$_t_uint256_$dyn_calldata_ptr(offset, end) -> arrayPos, length {\n        if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n        length := calldataload(offset)\n        if gt(length, 0xffffffffffffffff) { revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490() }\n        arrayPos := add(offset, 0x20)\n        if gt(add(arrayPos, mul(length, 0x20)), end) { revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef() }\n    }\n\n    function abi_decode_tuple_t_array$_t_address_$dyn_calldata_ptrt_addresst_addresst_array$_t_uint256_$dyn_calldata_ptr(headStart, dataEnd) -> value0, value1, value2, value3, value4, value5 {\n        if slt(sub(dataEnd, headStart), 128) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := calldataload(add(headStart, 0))\n            if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n            value0, value1 := abi_decode_t_array$_t_address_$dyn_calldata_ptr(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 32\n\n            value2 := abi_decode_t_address(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 64\n\n            value3 := abi_decode_t_address(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := calldataload(add(headStart, 96))\n            if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n            value4, value5 := abi_decode_t_array$_t_uint256_$dyn_calldata_ptr(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function panic_error_0x41() {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x41)\n        revert(0, 0x24)\n    }\n\n    function panic_error_0x32() {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x32)\n        revert(0, 0x24)\n    }\n\n    function abi_decode_tuple_t_address(headStart, dataEnd) -> value0 {\n        if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n        mstore(pos, cleanup_t_address(value))\n    }\n\n    function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_address_to_t_address_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function abi_decode_t_uint256_fromMemory(offset, end) -> value {\n        value := mload(offset)\n        validator_revert_t_uint256(value)\n    }\n\n    function abi_decode_tuple_t_uint256_fromMemory(headStart, dataEnd) -> value0 {\n        if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_uint256_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function panic_error_0x11() {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x11)\n        revert(0, 0x24)\n    }\n\n    function increment_t_uint256(value) -> ret {\n        value := cleanup_t_uint256(value)\n        if eq(value, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) { panic_error_0x11() }\n        ret := add(value, 1)\n    }\n\n    function abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed(headStart , value1, value0) -> tail {\n        tail := add(headStart, 64)\n\n        abi_encode_t_address_to_t_address_fromStack(value0,  add(headStart, 0))\n\n        abi_encode_t_address_to_t_address_fromStack(value1,  add(headStart, 32))\n\n    }\n\n    function array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length) -> updated_pos {\n        mstore(pos, length)\n        updated_pos := add(pos, 0x20)\n    }\n\n    function store_literal_in_memory_5e70ebd1d4072d337a7fabaa7bda70fa2633d6e3f89d5cb725a16b10d07e54c6(memPtr) {\n\n        mstore(add(memPtr, 0), \"Invalid token\")\n\n    }\n\n    function abi_encode_t_stringliteral_5e70ebd1d4072d337a7fabaa7bda70fa2633d6e3f89d5cb725a16b10d07e54c6_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 13)\n        store_literal_in_memory_5e70ebd1d4072d337a7fabaa7bda70fa2633d6e3f89d5cb725a16b10d07e54c6(pos)\n        end := add(pos, 32)\n    }\n\n    function abi_encode_tuple_t_stringliteral_5e70ebd1d4072d337a7fabaa7bda70fa2633d6e3f89d5cb725a16b10d07e54c6__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_5e70ebd1d4072d337a7fabaa7bda70fa2633d6e3f89d5cb725a16b10d07e54c6_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function store_literal_in_memory_480a3d2cf1e4838d740f40eac57f23eb6facc0baaf1a65a7b61df6a5a00ed368(memPtr) {\n\n        mstore(add(memPtr, 0), \"Invalid destination\")\n\n    }\n\n    function abi_encode_t_stringliteral_480a3d2cf1e4838d740f40eac57f23eb6facc0baaf1a65a7b61df6a5a00ed368_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 19)\n        store_literal_in_memory_480a3d2cf1e4838d740f40eac57f23eb6facc0baaf1a65a7b61df6a5a00ed368(pos)\n        end := add(pos, 32)\n    }\n\n    function abi_encode_tuple_t_stringliteral_480a3d2cf1e4838d740f40eac57f23eb6facc0baaf1a65a7b61df6a5a00ed368__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_480a3d2cf1e4838d740f40eac57f23eb6facc0baaf1a65a7b61df6a5a00ed368_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function store_literal_in_memory_3191da89117a1b0027f3623a186706fe04c82acd10c13dd219b922faa6967c0e(memPtr) {\n\n        mstore(add(memPtr, 0), \"Invalid source\")\n\n    }\n\n    function abi_encode_t_stringliteral_3191da89117a1b0027f3623a186706fe04c82acd10c13dd219b922faa6967c0e_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 14)\n        store_literal_in_memory_3191da89117a1b0027f3623a186706fe04c82acd10c13dd219b922faa6967c0e(pos)\n        end := add(pos, 32)\n    }\n\n    function abi_encode_tuple_t_stringliteral_3191da89117a1b0027f3623a186706fe04c82acd10c13dd219b922faa6967c0e__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_3191da89117a1b0027f3623a186706fe04c82acd10c13dd219b922faa6967c0e_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function store_literal_in_memory_3e76f273c719bb7d23db533a2dc9a822ae7d899fcd42eb8910272e24764e8296(memPtr) {\n\n        mstore(add(memPtr, 0), \"Amount must be greater than 0\")\n\n    }\n\n    function abi_encode_t_stringliteral_3e76f273c719bb7d23db533a2dc9a822ae7d899fcd42eb8910272e24764e8296_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 29)\n        store_literal_in_memory_3e76f273c719bb7d23db533a2dc9a822ae7d899fcd42eb8910272e24764e8296(pos)\n        end := add(pos, 32)\n    }\n\n    function abi_encode_tuple_t_stringliteral_3e76f273c719bb7d23db533a2dc9a822ae7d899fcd42eb8910272e24764e8296__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_3e76f273c719bb7d23db533a2dc9a822ae7d899fcd42eb8910272e24764e8296_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function store_literal_in_memory_45e3d26e36c3151c7f92a1eee9add9658cbb8e14605ee2452ec007389b9744bc(memPtr) {\n\n        mstore(add(memPtr, 0), \"Insufficient allowance\")\n\n    }\n\n    function abi_encode_t_stringliteral_45e3d26e36c3151c7f92a1eee9add9658cbb8e14605ee2452ec007389b9744bc_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 22)\n        store_literal_in_memory_45e3d26e36c3151c7f92a1eee9add9658cbb8e14605ee2452ec007389b9744bc(pos)\n        end := add(pos, 32)\n    }\n\n    function abi_encode_tuple_t_stringliteral_45e3d26e36c3151c7f92a1eee9add9658cbb8e14605ee2452ec007389b9744bc__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_45e3d26e36c3151c7f92a1eee9add9658cbb8e14605ee2452ec007389b9744bc_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function abi_encode_t_uint256_to_t_uint256_fromStack(value, pos) {\n        mstore(pos, cleanup_t_uint256(value))\n    }\n\n    function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_uint256_to_t_uint256_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function store_literal_in_memory_582fd48f3876d7686bfeaaaa0db0589073271dedd50d66094f02fee2a3d2e01c(memPtr) {\n\n        mstore(add(memPtr, 0), \"Arrays length mismatch\")\n\n    }\n\n    function abi_encode_t_stringliteral_582fd48f3876d7686bfeaaaa0db0589073271dedd50d66094f02fee2a3d2e01c_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 22)\n        store_literal_in_memory_582fd48f3876d7686bfeaaaa0db0589073271dedd50d66094f02fee2a3d2e01c(pos)\n        end := add(pos, 32)\n    }\n\n    function abi_encode_tuple_t_stringliteral_582fd48f3876d7686bfeaaaa0db0589073271dedd50d66094f02fee2a3d2e01c__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_582fd48f3876d7686bfeaaaa0db0589073271dedd50d66094f02fee2a3d2e01c_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function store_literal_in_memory_920fc87d8e9a45232b5e4c2c36e3c0fff5f09b5434a80d6ec35d7f09f9d69c29(memPtr) {\n\n        mstore(add(memPtr, 0), \"Empty arrays\")\n\n    }\n\n    function abi_encode_t_stringliteral_920fc87d8e9a45232b5e4c2c36e3c0fff5f09b5434a80d6ec35d7f09f9d69c29_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 12)\n        store_literal_in_memory_920fc87d8e9a45232b5e4c2c36e3c0fff5f09b5434a80d6ec35d7f09f9d69c29(pos)\n        end := add(pos, 32)\n    }\n\n    function abi_encode_tuple_t_stringliteral_920fc87d8e9a45232b5e4c2c36e3c0fff5f09b5434a80d6ec35d7f09f9d69c29__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_920fc87d8e9a45232b5e4c2c36e3c0fff5f09b5434a80d6ec35d7f09f9d69c29_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function abi_encode_tuple_t_address_t_address_t_uint256__to_t_address_t_address_t_uint256__fromStack_reversed(headStart , value2, value1, value0) -> tail {\n        tail := add(headStart, 96)\n\n        abi_encode_t_address_to_t_address_fromStack(value0,  add(headStart, 0))\n\n        abi_encode_t_address_to_t_address_fromStack(value1,  add(headStart, 32))\n\n        abi_encode_t_uint256_to_t_uint256_fromStack(value2,  add(headStart, 64))\n\n    }\n\n}\n","id":11,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"608060405234801561001057600080fd5b506004361061004c5760003560e01c8063322eb93a146100515780634c8e394814610081578063df904e33146100b1578063ee07c804146100cd575b600080fd5b61006b60048036038101906100669190610cf4565b6100e9565b6040516100789190610e1c565b60405180910390f35b61009b60048036038101906100969190610cf4565b610222565b6040516100a89190610e1c565b60405180910390f35b6100cb60048036038101906100c69190610e6a565b61035d565b005b6100e760048036038101906100e29190610f27565b610676565b005b60608383905067ffffffffffffffff81111561010857610107610fce565b5b6040519080825280602002602001820160405280156101365781602001602082028036833780820191505090505b50905060005b8484905081101561021a5784848281811061015a57610159610ffd565b5b905060200201602081019061016f919061102c565b73ffffffffffffffffffffffffffffffffffffffff166370a08231846040518263ffffffff1660e01b81526004016101a79190611068565b602060405180830381865afa1580156101c4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101e89190611098565b8282815181106101fb576101fa610ffd565b5b6020026020010181815250508080610212906110f4565b91505061013c565b509392505050565b60608383905067ffffffffffffffff81111561024157610240610fce565b5b60405190808252806020026020018201604052801561026f5781602001602082028036833780820191505090505b50905060005b848490508110156103555784848281811061029357610292610ffd565b5b90506020020160208101906102a8919061102c565b73ffffffffffffffffffffffffffffffffffffffff1663dd62ed3e84306040518363ffffffff1660e01b81526004016102e292919061113c565b602060405180830381865afa1580156102ff573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103239190611098565b82828151811061033657610335610ffd565b5b602002602001018181525050808061034d906110f4565b915050610275565b509392505050565b610365610ab3565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036103d4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103cb906111c2565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610443576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161043a9061122e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036104b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104a99061129a565b60405180910390fd5b600081116104f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104ec90611306565b60405180910390fd5b600084905060008173ffffffffffffffffffffffffffffffffffffffff1663dd62ed3e86306040518363ffffffff1660e01b815260040161053792919061113c565b602060405180830381865afa158015610554573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105789190611098565b9050828110156105bd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105b490611372565b60405180910390fd5b6105ea8585858573ffffffffffffffffffffffffffffffffffffffff16610af9909392919063ffffffff16565b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167f9af266b6ca4909f988dc948fb50ad15153abbe525351881bad4fa858be96515c8660405161065e91906113a1565b60405180910390a45050610670610b7b565b50505050565b61067e610ab3565b8181905086869050146106c6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106bd90611408565b60405180910390fd5b6000868690501161070c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161070390611474565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361077b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107729061122e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036107ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107e19061129a565b60405180910390fd5b60005b86869050811015610a3a57600083838381811061080d5761080c610ffd565b5b905060200201351115610a2757600087878381811061082f5761082e610ffd565b5b9050602002016020810190610844919061102c565b905060008173ffffffffffffffffffffffffffffffffffffffff1663dd62ed3e88306040518363ffffffff1660e01b815260040161088392919061113c565b602060405180830381865afa1580156108a0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108c49190611098565b90508484848181106108d9576108d8610ffd565b5b90506020020135811015610922576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161091990611372565b60405180910390fd5b610968878787878781811061093a57610939610ffd565b5b905060200201358573ffffffffffffffffffffffffffffffffffffffff16610af9909392919063ffffffff16565b8573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff168a8a868181106109a9576109a8610ffd565b5b90506020020160208101906109be919061102c565b73ffffffffffffffffffffffffffffffffffffffff167f9af266b6ca4909f988dc948fb50ad15153abbe525351881bad4fa858be96515c888888818110610a0857610a07610ffd565b5b90506020020135604051610a1c91906113a1565b60405180910390a450505b8080610a32906110f4565b9150506107ed565b508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fee33b49c2685af4719e7e52028345a4147b8df3070f604eed24da16954c07e1a88889050604051610a9b91906113a1565b60405180910390a3610aab610b7b565b505050505050565b600260005403610aef576040517f3ee5aeb500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6002600081905550565b610b75848573ffffffffffffffffffffffffffffffffffffffff166323b872dd868686604051602401610b2e93929190611494565b604051602081830303815290604052915060e01b6020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050610b85565b50505050565b6001600081905550565b600080602060008451602086016000885af180610ba8576040513d6000823e3d81fd5b3d925060005191505060008214610bc3576001811415610bdf565b60008473ffffffffffffffffffffffffffffffffffffffff163b145b15610c2157836040517f5274afe7000000000000000000000000000000000000000000000000000000008152600401610c189190611068565b60405180910390fd5b50505050565b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b60008083601f840112610c5657610c55610c31565b5b8235905067ffffffffffffffff811115610c7357610c72610c36565b5b602083019150836020820283011115610c8f57610c8e610c3b565b5b9250929050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610cc182610c96565b9050919050565b610cd181610cb6565b8114610cdc57600080fd5b50565b600081359050610cee81610cc8565b92915050565b600080600060408486031215610d0d57610d0c610c27565b5b600084013567ffffffffffffffff811115610d2b57610d2a610c2c565b5b610d3786828701610c40565b93509350506020610d4a86828701610cdf565b9150509250925092565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6000819050919050565b610d9381610d80565b82525050565b6000610da58383610d8a565b60208301905092915050565b6000602082019050919050565b6000610dc982610d54565b610dd38185610d5f565b9350610dde83610d70565b8060005b83811015610e0f578151610df68882610d99565b9750610e0183610db1565b925050600181019050610de2565b5085935050505092915050565b60006020820190508181036000830152610e368184610dbe565b905092915050565b610e4781610d80565b8114610e5257600080fd5b50565b600081359050610e6481610e3e565b92915050565b60008060008060808587031215610e8457610e83610c27565b5b6000610e9287828801610cdf565b9450506020610ea387828801610cdf565b9350506040610eb487828801610cdf565b9250506060610ec587828801610e55565b91505092959194509250565b60008083601f840112610ee757610ee6610c31565b5b8235905067ffffffffffffffff811115610f0457610f03610c36565b5b602083019150836020820283011115610f2057610f1f610c3b565b5b9250929050565b60008060008060008060808789031215610f4457610f43610c27565b5b600087013567ffffffffffffffff811115610f6257610f61610c2c565b5b610f6e89828a01610c40565b96509650506020610f8189828a01610cdf565b9450506040610f9289828a01610cdf565b935050606087013567ffffffffffffffff811115610fb357610fb2610c2c565b5b610fbf89828a01610ed1565b92509250509295509295509295565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60006020828403121561104257611041610c27565b5b600061105084828501610cdf565b91505092915050565b61106281610cb6565b82525050565b600060208201905061107d6000830184611059565b92915050565b60008151905061109281610e3e565b92915050565b6000602082840312156110ae576110ad610c27565b5b60006110bc84828501611083565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006110ff82610d80565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203611131576111306110c5565b5b600182019050919050565b60006040820190506111516000830185611059565b61115e6020830184611059565b9392505050565b600082825260208201905092915050565b7f496e76616c696420746f6b656e00000000000000000000000000000000000000600082015250565b60006111ac600d83611165565b91506111b782611176565b602082019050919050565b600060208201905081810360008301526111db8161119f565b9050919050565b7f496e76616c69642064657374696e6174696f6e00000000000000000000000000600082015250565b6000611218601383611165565b9150611223826111e2565b602082019050919050565b600060208201905081810360008301526112478161120b565b9050919050565b7f496e76616c696420736f75726365000000000000000000000000000000000000600082015250565b6000611284600e83611165565b915061128f8261124e565b602082019050919050565b600060208201905081810360008301526112b381611277565b9050919050565b7f416d6f756e74206d7573742062652067726561746572207468616e2030000000600082015250565b60006112f0601d83611165565b91506112fb826112ba565b602082019050919050565b6000602082019050818103600083015261131f816112e3565b9050919050565b7f496e73756666696369656e7420616c6c6f77616e636500000000000000000000600082015250565b600061135c601683611165565b915061136782611326565b602082019050919050565b6000602082019050818103600083015261138b8161134f565b9050919050565b61139b81610d80565b82525050565b60006020820190506113b66000830184611392565b92915050565b7f417272617973206c656e677468206d69736d6174636800000000000000000000600082015250565b60006113f2601683611165565b91506113fd826113bc565b602082019050919050565b60006020820190508181036000830152611421816113e5565b9050919050565b7f456d707479206172726179730000000000000000000000000000000000000000600082015250565b600061145e600c83611165565b915061146982611428565b602082019050919050565b6000602082019050818103600083015261148d81611451565b9050919050565b60006060820190506114a96000830186611059565b6114b66020830185611059565b6114c36040830184611392565b94935050505056fea264697066735822122070000d0c098dab08abab2ca617142a80d5ca28c2c53045e61bc8894550d943d764736f6c63430008140033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x4C JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x322EB93A EQ PUSH2 0x51 JUMPI DUP1 PUSH4 0x4C8E3948 EQ PUSH2 0x81 JUMPI DUP1 PUSH4 0xDF904E33 EQ PUSH2 0xB1 JUMPI DUP1 PUSH4 0xEE07C804 EQ PUSH2 0xCD JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x6B PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x66 SWAP2 SWAP1 PUSH2 0xCF4 JUMP JUMPDEST PUSH2 0xE9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x78 SWAP2 SWAP1 PUSH2 0xE1C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x9B PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x96 SWAP2 SWAP1 PUSH2 0xCF4 JUMP JUMPDEST PUSH2 0x222 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xA8 SWAP2 SWAP1 PUSH2 0xE1C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xCB PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xC6 SWAP2 SWAP1 PUSH2 0xE6A JUMP JUMPDEST PUSH2 0x35D JUMP JUMPDEST STOP JUMPDEST PUSH2 0xE7 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xE2 SWAP2 SWAP1 PUSH2 0xF27 JUMP JUMPDEST PUSH2 0x676 JUMP JUMPDEST STOP JUMPDEST PUSH1 0x60 DUP4 DUP4 SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x108 JUMPI PUSH2 0x107 PUSH2 0xFCE JUMP JUMPDEST JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x136 JUMPI DUP2 PUSH1 0x20 ADD PUSH1 0x20 DUP3 MUL DUP1 CALLDATASIZE DUP4 CALLDATACOPY DUP1 DUP3 ADD SWAP2 POP POP SWAP1 POP JUMPDEST POP SWAP1 POP PUSH1 0x0 JUMPDEST DUP5 DUP5 SWAP1 POP DUP2 LT ISZERO PUSH2 0x21A JUMPI DUP5 DUP5 DUP3 DUP2 DUP2 LT PUSH2 0x15A JUMPI PUSH2 0x159 PUSH2 0xFFD JUMP JUMPDEST JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x16F SWAP2 SWAP1 PUSH2 0x102C JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 DUP5 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1A7 SWAP2 SWAP1 PUSH2 0x1068 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1C4 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1E8 SWAP2 SWAP1 PUSH2 0x1098 JUMP JUMPDEST DUP3 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x1FB JUMPI PUSH2 0x1FA PUSH2 0xFFD JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD DUP2 DUP2 MSTORE POP POP DUP1 DUP1 PUSH2 0x212 SWAP1 PUSH2 0x10F4 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x13C JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x60 DUP4 DUP4 SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x241 JUMPI PUSH2 0x240 PUSH2 0xFCE JUMP JUMPDEST JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x26F JUMPI DUP2 PUSH1 0x20 ADD PUSH1 0x20 DUP3 MUL DUP1 CALLDATASIZE DUP4 CALLDATACOPY DUP1 DUP3 ADD SWAP2 POP POP SWAP1 POP JUMPDEST POP SWAP1 POP PUSH1 0x0 JUMPDEST DUP5 DUP5 SWAP1 POP DUP2 LT ISZERO PUSH2 0x355 JUMPI DUP5 DUP5 DUP3 DUP2 DUP2 LT PUSH2 0x293 JUMPI PUSH2 0x292 PUSH2 0xFFD JUMP JUMPDEST JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x2A8 SWAP2 SWAP1 PUSH2 0x102C JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xDD62ED3E DUP5 ADDRESS PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2E2 SWAP3 SWAP2 SWAP1 PUSH2 0x113C JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2FF JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x323 SWAP2 SWAP1 PUSH2 0x1098 JUMP JUMPDEST DUP3 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x336 JUMPI PUSH2 0x335 PUSH2 0xFFD JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD DUP2 DUP2 MSTORE POP POP DUP1 DUP1 PUSH2 0x34D SWAP1 PUSH2 0x10F4 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x275 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0x365 PUSH2 0xAB3 JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x3D4 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3CB SWAP1 PUSH2 0x11C2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x443 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x43A SWAP1 PUSH2 0x122E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x4B2 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x4A9 SWAP1 PUSH2 0x129A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP2 GT PUSH2 0x4F5 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x4EC SWAP1 PUSH2 0x1306 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP5 SWAP1 POP PUSH1 0x0 DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xDD62ED3E DUP7 ADDRESS PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x537 SWAP3 SWAP2 SWAP1 PUSH2 0x113C JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x554 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x578 SWAP2 SWAP1 PUSH2 0x1098 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 LT ISZERO PUSH2 0x5BD JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5B4 SWAP1 PUSH2 0x1372 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x5EA DUP6 DUP6 DUP6 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0xAF9 SWAP1 SWAP4 SWAP3 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP8 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x9AF266B6CA4909F988DC948FB50AD15153ABBE525351881BAD4FA858BE96515C DUP7 PUSH1 0x40 MLOAD PUSH2 0x65E SWAP2 SWAP1 PUSH2 0x13A1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP POP PUSH2 0x670 PUSH2 0xB7B JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH2 0x67E PUSH2 0xAB3 JUMP JUMPDEST DUP2 DUP2 SWAP1 POP DUP7 DUP7 SWAP1 POP EQ PUSH2 0x6C6 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x6BD SWAP1 PUSH2 0x1408 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP7 DUP7 SWAP1 POP GT PUSH2 0x70C JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x703 SWAP1 PUSH2 0x1474 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x77B JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x772 SWAP1 PUSH2 0x122E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x7EA JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x7E1 SWAP1 PUSH2 0x129A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 JUMPDEST DUP7 DUP7 SWAP1 POP DUP2 LT ISZERO PUSH2 0xA3A JUMPI PUSH1 0x0 DUP4 DUP4 DUP4 DUP2 DUP2 LT PUSH2 0x80D JUMPI PUSH2 0x80C PUSH2 0xFFD JUMP JUMPDEST JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD CALLDATALOAD GT ISZERO PUSH2 0xA27 JUMPI PUSH1 0x0 DUP8 DUP8 DUP4 DUP2 DUP2 LT PUSH2 0x82F JUMPI PUSH2 0x82E PUSH2 0xFFD JUMP JUMPDEST JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x844 SWAP2 SWAP1 PUSH2 0x102C JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xDD62ED3E DUP9 ADDRESS PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x883 SWAP3 SWAP2 SWAP1 PUSH2 0x113C JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x8A0 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x8C4 SWAP2 SWAP1 PUSH2 0x1098 JUMP JUMPDEST SWAP1 POP DUP5 DUP5 DUP5 DUP2 DUP2 LT PUSH2 0x8D9 JUMPI PUSH2 0x8D8 PUSH2 0xFFD JUMP JUMPDEST JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD CALLDATALOAD DUP2 LT ISZERO PUSH2 0x922 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x919 SWAP1 PUSH2 0x1372 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x968 DUP8 DUP8 DUP8 DUP8 DUP8 DUP2 DUP2 LT PUSH2 0x93A JUMPI PUSH2 0x939 PUSH2 0xFFD JUMP JUMPDEST JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD CALLDATALOAD DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0xAF9 SWAP1 SWAP4 SWAP3 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP8 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP11 DUP11 DUP7 DUP2 DUP2 LT PUSH2 0x9A9 JUMPI PUSH2 0x9A8 PUSH2 0xFFD JUMP JUMPDEST JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x9BE SWAP2 SWAP1 PUSH2 0x102C JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x9AF266B6CA4909F988DC948FB50AD15153ABBE525351881BAD4FA858BE96515C DUP9 DUP9 DUP9 DUP2 DUP2 LT PUSH2 0xA08 JUMPI PUSH2 0xA07 PUSH2 0xFFD JUMP JUMPDEST JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD CALLDATALOAD PUSH1 0x40 MLOAD PUSH2 0xA1C SWAP2 SWAP1 PUSH2 0x13A1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP POP JUMPDEST DUP1 DUP1 PUSH2 0xA32 SWAP1 PUSH2 0x10F4 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x7ED JUMP JUMPDEST POP DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xEE33B49C2685AF4719E7E52028345A4147B8DF3070F604EED24DA16954C07E1A DUP9 DUP9 SWAP1 POP PUSH1 0x40 MLOAD PUSH2 0xA9B SWAP2 SWAP1 PUSH2 0x13A1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 PUSH2 0xAAB PUSH2 0xB7B JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x2 PUSH1 0x0 SLOAD SUB PUSH2 0xAEF JUMPI PUSH1 0x40 MLOAD PUSH32 0x3EE5AEB500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x2 PUSH1 0x0 DUP2 SWAP1 SSTORE POP JUMP JUMPDEST PUSH2 0xB75 DUP5 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x23B872DD DUP7 DUP7 DUP7 PUSH1 0x40 MLOAD PUSH1 0x24 ADD PUSH2 0xB2E SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1494 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP2 POP PUSH1 0xE0 SHL PUSH1 0x20 DUP3 ADD DUP1 MLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 DUP2 DUP4 AND OR DUP4 MSTORE POP POP POP POP PUSH2 0xB85 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x0 DUP2 SWAP1 SSTORE POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x20 PUSH1 0x0 DUP5 MLOAD PUSH1 0x20 DUP7 ADD PUSH1 0x0 DUP9 GAS CALL DUP1 PUSH2 0xBA8 JUMPI PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY RETURNDATASIZE DUP2 REVERT JUMPDEST RETURNDATASIZE SWAP3 POP PUSH1 0x0 MLOAD SWAP2 POP POP PUSH1 0x0 DUP3 EQ PUSH2 0xBC3 JUMPI PUSH1 0x1 DUP2 EQ ISZERO PUSH2 0xBDF JUMP JUMPDEST PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EXTCODESIZE EQ JUMPDEST ISZERO PUSH2 0xC21 JUMPI DUP4 PUSH1 0x40 MLOAD PUSH32 0x5274AFE700000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xC18 SWAP2 SWAP1 PUSH2 0x1068 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0xC56 JUMPI PUSH2 0xC55 PUSH2 0xC31 JUMP JUMPDEST JUMPDEST DUP3 CALLDATALOAD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xC73 JUMPI PUSH2 0xC72 PUSH2 0xC36 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0xC8F JUMPI PUSH2 0xC8E PUSH2 0xC3B JUMP JUMPDEST JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xCC1 DUP3 PUSH2 0xC96 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xCD1 DUP2 PUSH2 0xCB6 JUMP JUMPDEST DUP2 EQ PUSH2 0xCDC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xCEE DUP2 PUSH2 0xCC8 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x40 DUP5 DUP7 SUB SLT ISZERO PUSH2 0xD0D JUMPI PUSH2 0xD0C PUSH2 0xC27 JUMP JUMPDEST JUMPDEST PUSH1 0x0 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xD2B JUMPI PUSH2 0xD2A PUSH2 0xC2C JUMP JUMPDEST JUMPDEST PUSH2 0xD37 DUP7 DUP3 DUP8 ADD PUSH2 0xC40 JUMP JUMPDEST SWAP4 POP SWAP4 POP POP PUSH1 0x20 PUSH2 0xD4A DUP7 DUP3 DUP8 ADD PUSH2 0xCDF JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xD93 DUP2 PUSH2 0xD80 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xDA5 DUP4 DUP4 PUSH2 0xD8A JUMP JUMPDEST PUSH1 0x20 DUP4 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xDC9 DUP3 PUSH2 0xD54 JUMP JUMPDEST PUSH2 0xDD3 DUP2 DUP6 PUSH2 0xD5F JUMP JUMPDEST SWAP4 POP PUSH2 0xDDE DUP4 PUSH2 0xD70 JUMP JUMPDEST DUP1 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xE0F JUMPI DUP2 MLOAD PUSH2 0xDF6 DUP9 DUP3 PUSH2 0xD99 JUMP JUMPDEST SWAP8 POP PUSH2 0xE01 DUP4 PUSH2 0xDB1 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH2 0xDE2 JUMP JUMPDEST POP DUP6 SWAP4 POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0xE36 DUP2 DUP5 PUSH2 0xDBE JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xE47 DUP2 PUSH2 0xD80 JUMP JUMPDEST DUP2 EQ PUSH2 0xE52 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xE64 DUP2 PUSH2 0xE3E JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0xE84 JUMPI PUSH2 0xE83 PUSH2 0xC27 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xE92 DUP8 DUP3 DUP9 ADD PUSH2 0xCDF JUMP JUMPDEST SWAP5 POP POP PUSH1 0x20 PUSH2 0xEA3 DUP8 DUP3 DUP9 ADD PUSH2 0xCDF JUMP JUMPDEST SWAP4 POP POP PUSH1 0x40 PUSH2 0xEB4 DUP8 DUP3 DUP9 ADD PUSH2 0xCDF JUMP JUMPDEST SWAP3 POP POP PUSH1 0x60 PUSH2 0xEC5 DUP8 DUP3 DUP9 ADD PUSH2 0xE55 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0xEE7 JUMPI PUSH2 0xEE6 PUSH2 0xC31 JUMP JUMPDEST JUMPDEST DUP3 CALLDATALOAD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xF04 JUMPI PUSH2 0xF03 PUSH2 0xC36 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0xF20 JUMPI PUSH2 0xF1F PUSH2 0xC3B JUMP JUMPDEST JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP8 DUP10 SUB SLT ISZERO PUSH2 0xF44 JUMPI PUSH2 0xF43 PUSH2 0xC27 JUMP JUMPDEST JUMPDEST PUSH1 0x0 DUP8 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xF62 JUMPI PUSH2 0xF61 PUSH2 0xC2C JUMP JUMPDEST JUMPDEST PUSH2 0xF6E DUP10 DUP3 DUP11 ADD PUSH2 0xC40 JUMP JUMPDEST SWAP7 POP SWAP7 POP POP PUSH1 0x20 PUSH2 0xF81 DUP10 DUP3 DUP11 ADD PUSH2 0xCDF JUMP JUMPDEST SWAP5 POP POP PUSH1 0x40 PUSH2 0xF92 DUP10 DUP3 DUP11 ADD PUSH2 0xCDF JUMP JUMPDEST SWAP4 POP POP PUSH1 0x60 DUP8 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xFB3 JUMPI PUSH2 0xFB2 PUSH2 0xC2C JUMP JUMPDEST JUMPDEST PUSH2 0xFBF DUP10 DUP3 DUP11 ADD PUSH2 0xED1 JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 POP SWAP3 SWAP6 JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1042 JUMPI PUSH2 0x1041 PUSH2 0xC27 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1050 DUP5 DUP3 DUP6 ADD PUSH2 0xCDF JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x1062 DUP2 PUSH2 0xCB6 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x107D PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1059 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x1092 DUP2 PUSH2 0xE3E JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x10AE JUMPI PUSH2 0x10AD PUSH2 0xC27 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x10BC DUP5 DUP3 DUP6 ADD PUSH2 0x1083 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x10FF DUP3 PUSH2 0xD80 JUMP JUMPDEST SWAP2 POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 SUB PUSH2 0x1131 JUMPI PUSH2 0x1130 PUSH2 0x10C5 JUMP JUMPDEST JUMPDEST PUSH1 0x1 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x1151 PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x1059 JUMP JUMPDEST PUSH2 0x115E PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x1059 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x496E76616C696420746F6B656E00000000000000000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x11AC PUSH1 0xD DUP4 PUSH2 0x1165 JUMP JUMPDEST SWAP2 POP PUSH2 0x11B7 DUP3 PUSH2 0x1176 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x11DB DUP2 PUSH2 0x119F JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x496E76616C69642064657374696E6174696F6E00000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1218 PUSH1 0x13 DUP4 PUSH2 0x1165 JUMP JUMPDEST SWAP2 POP PUSH2 0x1223 DUP3 PUSH2 0x11E2 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x1247 DUP2 PUSH2 0x120B JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x496E76616C696420736F75726365000000000000000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1284 PUSH1 0xE DUP4 PUSH2 0x1165 JUMP JUMPDEST SWAP2 POP PUSH2 0x128F DUP3 PUSH2 0x124E JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x12B3 DUP2 PUSH2 0x1277 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x416D6F756E74206D7573742062652067726561746572207468616E2030000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x12F0 PUSH1 0x1D DUP4 PUSH2 0x1165 JUMP JUMPDEST SWAP2 POP PUSH2 0x12FB DUP3 PUSH2 0x12BA JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x131F DUP2 PUSH2 0x12E3 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x496E73756666696369656E7420616C6C6F77616E636500000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x135C PUSH1 0x16 DUP4 PUSH2 0x1165 JUMP JUMPDEST SWAP2 POP PUSH2 0x1367 DUP3 PUSH2 0x1326 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x138B DUP2 PUSH2 0x134F JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x139B DUP2 PUSH2 0xD80 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x13B6 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1392 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x417272617973206C656E677468206D69736D6174636800000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x13F2 PUSH1 0x16 DUP4 PUSH2 0x1165 JUMP JUMPDEST SWAP2 POP PUSH2 0x13FD DUP3 PUSH2 0x13BC JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x1421 DUP2 PUSH2 0x13E5 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x456D707479206172726179730000000000000000000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x145E PUSH1 0xC DUP4 PUSH2 0x1165 JUMP JUMPDEST SWAP2 POP PUSH2 0x1469 DUP3 PUSH2 0x1428 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x148D DUP2 PUSH2 0x1451 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0x14A9 PUSH1 0x0 DUP4 ADD DUP7 PUSH2 0x1059 JUMP JUMPDEST PUSH2 0x14B6 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x1059 JUMP JUMPDEST PUSH2 0x14C3 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x1392 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH17 0xD0C098DAB08ABAB2CA617142A80D5CA 0x28 0xC2 0xC5 ADDRESS GASLIMIT 0xE6 SHL 0xC8 DUP10 GASLIMIT POP 0xD9 NUMBER 0xD7 PUSH5 0x736F6C6343 STOP ADDMOD EQ STOP CALLER ","sourceMap":"470:4081:9:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4175:373;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3559:398;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2575:760;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1252:1035;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4175:373;4288:25;4351:6;;:13;;4337:28;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4326:39;;4391:9;4386:119;4410:6;;:13;;4406:1;:17;4386:119;;;4466:6;;4473:1;4466:9;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;4459:27;;;4487:5;4459:34;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4445:8;4454:1;4445:11;;;;;;;;:::i;:::-;;;;;;;:48;;;;;4425:3;;;;;:::i;:::-;;;;4386:119;;;;4175:373;;;;;:::o;3559:398::-;3674:27;3741:6;;:13;;3727:28;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3714:41;;3781:9;3776:136;3800:6;;:13;;3796:1;:17;3776:136;;;3858:6;;3865:1;3858:9;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;3851:27;;;3879:5;3894:4;3851:49;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3835:10;3846:1;3835:13;;;;;;;;:::i;:::-;;;;;;;:65;;;;;3815:3;;;;;:::i;:::-;;;;3776:136;;;;3559:398;;;;;:::o;2575:760::-;2500:21:7;:19;:21::i;:::-;2761:1:9::1;2744:19;;:5;:19;;::::0;2736:45:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;2814:1;2800:16;;:2;:16;;::::0;2792:48:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;2875:1;2859:18;;:4;:18;;::::0;2851:45:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;2924:1;2915:6;:10;2907:52;;;;;;;;;;;;:::i;:::-;;;;;;;;;2972:20;3002:5;2972:36;;3057:17;3077:13;:23;;;3101:4;3115;3077:44;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3057:64;;3153:6;3140:9;:19;;3132:54;;;;;;;;;;;;:::i;:::-;;;;;;;;;3220:48;3251:4;3257:2;3261:6;3220:13;:30;;;;:48;;;;;;:::i;:::-;3316:2;3286:41;;3310:4;3286:41;;3303:5;3286:41;;;3320:6;3286:41;;;;;;:::i;:::-;;;;;;;;2725:610;;2542:20:7::0;:18;:20::i;:::-;2575:760:9;;;;:::o;1252:1035::-;2500:21:7;:19;:21::i;:::-;1461:7:9::1;;:14;;1444:6;;:13;;:31;1436:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;1537:1;1521:6;;:13;;:17;1513:42;;;;;;;;;;;;:::i;:::-;;;;;;;;;1588:1;1574:16;;:2;:16;;::::0;1566:48:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;1649:1;1633:18;;:4;:18;;::::0;1625:45:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;1688:9;1683:532;1707:6;;:13;;1703:1;:17;1683:532;;;1759:1;1746:7;;1754:1;1746:10;;;;;;;:::i;:::-;;;;;;;;:14;1742:462;;;1781:12;1803:6;;1810:1;1803:9;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;1781:32;;1886:17;1906:5;:15;;;1922:4;1936;1906:36;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1886:56;;1982:7;;1990:1;1982:10;;;;;;;:::i;:::-;;;;;;;;1969:9;:23;;1961:58;;;;;;;;;;;;:::i;:::-;;;;;;;;;2069:44;2092:4;2098:2;2102:7;;2110:1;2102:10;;;;;;;:::i;:::-;;;;;;;;2069:5;:22;;;;:44;;;;;;:::i;:::-;2173:2;2139:49;;2167:4;2139:49;;2156:6;;2163:1;2156:9;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;2139:49;;;2177:7;;2185:1;2177:10;;;;;;;:::i;:::-;;;;;;;;2139:49;;;;;;:::i;:::-;;;;;;;;1762:442;;1742:462;1722:3;;;;;:::i;:::-;;;;1683:532;;;;2261:2;2232:47;;2255:4;2232:47;;;2265:6;;:13;;2232:47;;;;;;:::i;:::-;;;;;;;;2542:20:7::0;:18;:20::i;:::-;1252:1035:9;;;;;;:::o;2575:307:7:-;1899:1;2702:7;;:18;2698:86;;2743:30;;;;;;;;;;;;;;2698:86;1899:1;2858:7;:17;;;;2575:307::o;1618:188:5:-;1718:81;1738:5;1760;:18;;;1781:4;1787:2;1791:5;1745:53;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1718:19;:81::i;:::-;1618:188;;;;:::o;2888:208:7:-;1857:1;3068:7;:21;;;;2888:208::o;8370:720:5:-;8450:18;8478:19;8616:4;8613:1;8606:4;8600:11;8593:4;8587;8583:15;8580:1;8573:5;8566;8561:60;8673:7;8663:176;;8717:4;8711:11;8762:16;8759:1;8754:3;8739:40;8808:16;8803:3;8796:29;8663:176;8866:16;8852:30;;8916:1;8910:8;8895:23;;8532:396;8956:1;8942:10;:15;:68;;9009:1;8994:11;:16;;8942:68;;;8990:1;8968:5;8960:26;;;:31;8942:68;8938:146;;;9066:5;9033:40;;;;;;;;;;;:::i;:::-;;;;;;;;8938:146;8440:650;;8370:720;;:::o;88:117:11:-;197:1;194;187:12;211:117;320:1;317;310:12;334:117;443:1;440;433:12;457:117;566:1;563;556:12;580:117;689:1;686;679:12;720:568;793:8;803:6;853:3;846:4;838:6;834:17;830:27;820:122;;861:79;;:::i;:::-;820:122;974:6;961:20;951:30;;1004:18;996:6;993:30;990:117;;;1026:79;;:::i;:::-;990:117;1140:4;1132:6;1128:17;1116:29;;1194:3;1186:4;1178:6;1174:17;1164:8;1160:32;1157:41;1154:128;;;1201:79;;:::i;:::-;1154:128;720:568;;;;;:::o;1294:126::-;1331:7;1371:42;1364:5;1360:54;1349:65;;1294:126;;;:::o;1426:96::-;1463:7;1492:24;1510:5;1492:24;:::i;:::-;1481:35;;1426:96;;;:::o;1528:122::-;1601:24;1619:5;1601:24;:::i;:::-;1594:5;1591:35;1581:63;;1640:1;1637;1630:12;1581:63;1528:122;:::o;1656:139::-;1702:5;1740:6;1727:20;1718:29;;1756:33;1783:5;1756:33;:::i;:::-;1656:139;;;;:::o;1801:704::-;1896:6;1904;1912;1961:2;1949:9;1940:7;1936:23;1932:32;1929:119;;;1967:79;;:::i;:::-;1929:119;2115:1;2104:9;2100:17;2087:31;2145:18;2137:6;2134:30;2131:117;;;2167:79;;:::i;:::-;2131:117;2280:80;2352:7;2343:6;2332:9;2328:22;2280:80;:::i;:::-;2262:98;;;;2058:312;2409:2;2435:53;2480:7;2471:6;2460:9;2456:22;2435:53;:::i;:::-;2425:63;;2380:118;1801:704;;;;;:::o;2511:114::-;2578:6;2612:5;2606:12;2596:22;;2511:114;;;:::o;2631:184::-;2730:11;2764:6;2759:3;2752:19;2804:4;2799:3;2795:14;2780:29;;2631:184;;;;:::o;2821:132::-;2888:4;2911:3;2903:11;;2941:4;2936:3;2932:14;2924:22;;2821:132;;;:::o;2959:77::-;2996:7;3025:5;3014:16;;2959:77;;;:::o;3042:108::-;3119:24;3137:5;3119:24;:::i;:::-;3114:3;3107:37;3042:108;;:::o;3156:179::-;3225:10;3246:46;3288:3;3280:6;3246:46;:::i;:::-;3324:4;3319:3;3315:14;3301:28;;3156:179;;;;:::o;3341:113::-;3411:4;3443;3438:3;3434:14;3426:22;;3341:113;;;:::o;3490:732::-;3609:3;3638:54;3686:5;3638:54;:::i;:::-;3708:86;3787:6;3782:3;3708:86;:::i;:::-;3701:93;;3818:56;3868:5;3818:56;:::i;:::-;3897:7;3928:1;3913:284;3938:6;3935:1;3932:13;3913:284;;;4014:6;4008:13;4041:63;4100:3;4085:13;4041:63;:::i;:::-;4034:70;;4127:60;4180:6;4127:60;:::i;:::-;4117:70;;3973:224;3960:1;3957;3953:9;3948:14;;3913:284;;;3917:14;4213:3;4206:10;;3614:608;;;3490:732;;;;:::o;4228:373::-;4371:4;4409:2;4398:9;4394:18;4386:26;;4458:9;4452:4;4448:20;4444:1;4433:9;4429:17;4422:47;4486:108;4589:4;4580:6;4486:108;:::i;:::-;4478:116;;4228:373;;;;:::o;4607:122::-;4680:24;4698:5;4680:24;:::i;:::-;4673:5;4670:35;4660:63;;4719:1;4716;4709:12;4660:63;4607:122;:::o;4735:139::-;4781:5;4819:6;4806:20;4797:29;;4835:33;4862:5;4835:33;:::i;:::-;4735:139;;;;:::o;4880:765::-;4966:6;4974;4982;4990;5039:3;5027:9;5018:7;5014:23;5010:33;5007:120;;;5046:79;;:::i;:::-;5007:120;5166:1;5191:53;5236:7;5227:6;5216:9;5212:22;5191:53;:::i;:::-;5181:63;;5137:117;5293:2;5319:53;5364:7;5355:6;5344:9;5340:22;5319:53;:::i;:::-;5309:63;;5264:118;5421:2;5447:53;5492:7;5483:6;5472:9;5468:22;5447:53;:::i;:::-;5437:63;;5392:118;5549:2;5575:53;5620:7;5611:6;5600:9;5596:22;5575:53;:::i;:::-;5565:63;;5520:118;4880:765;;;;;;;:::o;5668:568::-;5741:8;5751:6;5801:3;5794:4;5786:6;5782:17;5778:27;5768:122;;5809:79;;:::i;:::-;5768:122;5922:6;5909:20;5899:30;;5952:18;5944:6;5941:30;5938:117;;;5974:79;;:::i;:::-;5938:117;6088:4;6080:6;6076:17;6064:29;;6142:3;6134:4;6126:6;6122:17;6112:8;6108:32;6105:41;6102:128;;;6149:79;;:::i;:::-;6102:128;5668:568;;;;;:::o;6242:1225::-;6382:6;6390;6398;6406;6414;6422;6471:3;6459:9;6450:7;6446:23;6442:33;6439:120;;;6478:79;;:::i;:::-;6439:120;6626:1;6615:9;6611:17;6598:31;6656:18;6648:6;6645:30;6642:117;;;6678:79;;:::i;:::-;6642:117;6791:80;6863:7;6854:6;6843:9;6839:22;6791:80;:::i;:::-;6773:98;;;;6569:312;6920:2;6946:53;6991:7;6982:6;6971:9;6967:22;6946:53;:::i;:::-;6936:63;;6891:118;7048:2;7074:53;7119:7;7110:6;7099:9;7095:22;7074:53;:::i;:::-;7064:63;;7019:118;7204:2;7193:9;7189:18;7176:32;7235:18;7227:6;7224:30;7221:117;;;7257:79;;:::i;:::-;7221:117;7370:80;7442:7;7433:6;7422:9;7418:22;7370:80;:::i;:::-;7352:98;;;;7147:313;6242:1225;;;;;;;;:::o;7473:180::-;7521:77;7518:1;7511:88;7618:4;7615:1;7608:15;7642:4;7639:1;7632:15;7659:180;7707:77;7704:1;7697:88;7804:4;7801:1;7794:15;7828:4;7825:1;7818:15;7845:329;7904:6;7953:2;7941:9;7932:7;7928:23;7924:32;7921:119;;;7959:79;;:::i;:::-;7921:119;8079:1;8104:53;8149:7;8140:6;8129:9;8125:22;8104:53;:::i;:::-;8094:63;;8050:117;7845:329;;;;:::o;8180:118::-;8267:24;8285:5;8267:24;:::i;:::-;8262:3;8255:37;8180:118;;:::o;8304:222::-;8397:4;8435:2;8424:9;8420:18;8412:26;;8448:71;8516:1;8505:9;8501:17;8492:6;8448:71;:::i;:::-;8304:222;;;;:::o;8532:143::-;8589:5;8620:6;8614:13;8605:22;;8636:33;8663:5;8636:33;:::i;:::-;8532:143;;;;:::o;8681:351::-;8751:6;8800:2;8788:9;8779:7;8775:23;8771:32;8768:119;;;8806:79;;:::i;:::-;8768:119;8926:1;8951:64;9007:7;8998:6;8987:9;8983:22;8951:64;:::i;:::-;8941:74;;8897:128;8681:351;;;;:::o;9038:180::-;9086:77;9083:1;9076:88;9183:4;9180:1;9173:15;9207:4;9204:1;9197:15;9224:233;9263:3;9286:24;9304:5;9286:24;:::i;:::-;9277:33;;9332:66;9325:5;9322:77;9319:103;;9402:18;;:::i;:::-;9319:103;9449:1;9442:5;9438:13;9431:20;;9224:233;;;:::o;9463:332::-;9584:4;9622:2;9611:9;9607:18;9599:26;;9635:71;9703:1;9692:9;9688:17;9679:6;9635:71;:::i;:::-;9716:72;9784:2;9773:9;9769:18;9760:6;9716:72;:::i;:::-;9463:332;;;;;:::o;9801:169::-;9885:11;9919:6;9914:3;9907:19;9959:4;9954:3;9950:14;9935:29;;9801:169;;;;:::o;9976:163::-;10116:15;10112:1;10104:6;10100:14;10093:39;9976:163;:::o;10145:366::-;10287:3;10308:67;10372:2;10367:3;10308:67;:::i;:::-;10301:74;;10384:93;10473:3;10384:93;:::i;:::-;10502:2;10497:3;10493:12;10486:19;;10145:366;;;:::o;10517:419::-;10683:4;10721:2;10710:9;10706:18;10698:26;;10770:9;10764:4;10760:20;10756:1;10745:9;10741:17;10734:47;10798:131;10924:4;10798:131;:::i;:::-;10790:139;;10517:419;;;:::o;10942:169::-;11082:21;11078:1;11070:6;11066:14;11059:45;10942:169;:::o;11117:366::-;11259:3;11280:67;11344:2;11339:3;11280:67;:::i;:::-;11273:74;;11356:93;11445:3;11356:93;:::i;:::-;11474:2;11469:3;11465:12;11458:19;;11117:366;;;:::o;11489:419::-;11655:4;11693:2;11682:9;11678:18;11670:26;;11742:9;11736:4;11732:20;11728:1;11717:9;11713:17;11706:47;11770:131;11896:4;11770:131;:::i;:::-;11762:139;;11489:419;;;:::o;11914:164::-;12054:16;12050:1;12042:6;12038:14;12031:40;11914:164;:::o;12084:366::-;12226:3;12247:67;12311:2;12306:3;12247:67;:::i;:::-;12240:74;;12323:93;12412:3;12323:93;:::i;:::-;12441:2;12436:3;12432:12;12425:19;;12084:366;;;:::o;12456:419::-;12622:4;12660:2;12649:9;12645:18;12637:26;;12709:9;12703:4;12699:20;12695:1;12684:9;12680:17;12673:47;12737:131;12863:4;12737:131;:::i;:::-;12729:139;;12456:419;;;:::o;12881:179::-;13021:31;13017:1;13009:6;13005:14;12998:55;12881:179;:::o;13066:366::-;13208:3;13229:67;13293:2;13288:3;13229:67;:::i;:::-;13222:74;;13305:93;13394:3;13305:93;:::i;:::-;13423:2;13418:3;13414:12;13407:19;;13066:366;;;:::o;13438:419::-;13604:4;13642:2;13631:9;13627:18;13619:26;;13691:9;13685:4;13681:20;13677:1;13666:9;13662:17;13655:47;13719:131;13845:4;13719:131;:::i;:::-;13711:139;;13438:419;;;:::o;13863:172::-;14003:24;13999:1;13991:6;13987:14;13980:48;13863:172;:::o;14041:366::-;14183:3;14204:67;14268:2;14263:3;14204:67;:::i;:::-;14197:74;;14280:93;14369:3;14280:93;:::i;:::-;14398:2;14393:3;14389:12;14382:19;;14041:366;;;:::o;14413:419::-;14579:4;14617:2;14606:9;14602:18;14594:26;;14666:9;14660:4;14656:20;14652:1;14641:9;14637:17;14630:47;14694:131;14820:4;14694:131;:::i;:::-;14686:139;;14413:419;;;:::o;14838:118::-;14925:24;14943:5;14925:24;:::i;:::-;14920:3;14913:37;14838:118;;:::o;14962:222::-;15055:4;15093:2;15082:9;15078:18;15070:26;;15106:71;15174:1;15163:9;15159:17;15150:6;15106:71;:::i;:::-;14962:222;;;;:::o;15190:172::-;15330:24;15326:1;15318:6;15314:14;15307:48;15190:172;:::o;15368:366::-;15510:3;15531:67;15595:2;15590:3;15531:67;:::i;:::-;15524:74;;15607:93;15696:3;15607:93;:::i;:::-;15725:2;15720:3;15716:12;15709:19;;15368:366;;;:::o;15740:419::-;15906:4;15944:2;15933:9;15929:18;15921:26;;15993:9;15987:4;15983:20;15979:1;15968:9;15964:17;15957:47;16021:131;16147:4;16021:131;:::i;:::-;16013:139;;15740:419;;;:::o;16165:162::-;16305:14;16301:1;16293:6;16289:14;16282:38;16165:162;:::o;16333:366::-;16475:3;16496:67;16560:2;16555:3;16496:67;:::i;:::-;16489:74;;16572:93;16661:3;16572:93;:::i;:::-;16690:2;16685:3;16681:12;16674:19;;16333:366;;;:::o;16705:419::-;16871:4;16909:2;16898:9;16894:18;16886:26;;16958:9;16952:4;16948:20;16944:1;16933:9;16929:17;16922:47;16986:131;17112:4;16986:131;:::i;:::-;16978:139;;16705:419;;;:::o;17130:442::-;17279:4;17317:2;17306:9;17302:18;17294:26;;17330:71;17398:1;17387:9;17383:17;17374:6;17330:71;:::i;:::-;17411:72;17479:2;17468:9;17464:18;17455:6;17411:72;:::i;:::-;17493;17561:2;17550:9;17546:18;17537:6;17493:72;:::i;:::-;17130:442;;;;;;:::o"},"methodIdentifiers":{"batchTransferFrom(address[],address,address,uint256[])":"ee07c804","checkAllowances(address[],address)":"4c8e3948","checkBalances(address[],address)":"322eb93a","singleTransferFrom(address,address,address,uint256)":"df904e33"}},"metadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"ReentrancyGuardReentrantCall\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"SafeERC20FailedOperation\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokenCount\",\"type\":\"uint256\"}],\"name\":\"BatchTransferCompleted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"TokenTransferred\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"tokens\",\"type\":\"address[]\"},{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256[]\",\"name\":\"amounts\",\"type\":\"uint256[]\"}],\"name\":\"batchTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"tokens\",\"type\":\"address[]\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"checkAllowances\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"allowances\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"tokens\",\"type\":\"address[]\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"checkBalances\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"balances\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"singleTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"This contract uses SafeERC20 for safe token transfers and is protected against reentrancy\",\"errors\":{\"ReentrancyGuardReentrantCall()\":[{\"details\":\"Unauthorized reentrant call.\"}],\"SafeERC20FailedOperation(address)\":[{\"details\":\"An operation with an ERC-20 token failed.\"}]},\"kind\":\"dev\",\"methods\":{\"batchTransferFrom(address[],address,address,uint256[])\":{\"details\":\"Requires approval for each token beforehand\",\"params\":{\"amounts\":\"Array of amounts to transfer (corresponding to tokens array)\",\"from\":\"Source address (must have approved this contract)\",\"to\":\"Destination address\",\"tokens\":\"Array of token addresses to transfer\"}},\"checkAllowances(address[],address)\":{\"params\":{\"owner\":\"Address of token owner\",\"tokens\":\"Array of token addresses\"},\"returns\":{\"allowances\":\"Array of allowance amounts\"}},\"checkBalances(address[],address)\":{\"params\":{\"owner\":\"Address of token owner\",\"tokens\":\"Array of token addresses\"},\"returns\":{\"balances\":\"Array of balance amounts\"}},\"singleTransferFrom(address,address,address,uint256)\":{\"details\":\"Requires approval beforehand\",\"params\":{\"amount\":\"Amount to transfer\",\"from\":\"Source address\",\"to\":\"Destination address\",\"token\":\"Token address to transfer\"}}},\"title\":\"BatchTransfer\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"batchTransferFrom(address[],address,address,uint256[])\":{\"notice\":\"Transfer multiple tokens from one address to another\"},\"checkAllowances(address[],address)\":{\"notice\":\"Check allowances for multiple tokens\"},\"checkBalances(address[],address)\":{\"notice\":\"Check balances for multiple tokens\"},\"singleTransferFrom(address,address,address,uint256)\":{\"notice\":\"Transfer a single token using transferFrom\"}},\"notice\":\"A contract to batch transfer multiple ERC20 tokens in a single transaction\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/BatchTransfer.sol\":\"BatchTransfer\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/interfaces/IERC1363.sol\":{\"keccak256\":\"0xd5ea07362ab630a6a3dee4285a74cf2377044ca2e4be472755ad64d7c5d4b69d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://da5e832b40fc5c3145d3781e2e5fa60ac2052c9d08af7e300dc8ab80c4343100\",\"dweb:/ipfs/QmTzf7N5ZUdh5raqtzbM11yexiUoLC9z3Ws632MCuycq1d\"]},\"@openzeppelin/contracts/interfaces/IERC165.sol\":{\"keccak256\":\"0x0afcb7e740d1537b252cb2676f600465ce6938398569f09ba1b9ca240dde2dfc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1c299900ac4ec268d4570ecef0d697a3013cd11a6eb74e295ee3fbc945056037\",\"dweb:/ipfs/Qmab9owJoxcA7vJT5XNayCMaUR1qxqj1NDzzisduwaJMcZ\"]},\"@openzeppelin/contracts/interfaces/IERC20.sol\":{\"keccak256\":\"0x1a6221315ce0307746c2c4827c125d821ee796c74a676787762f4778671d4f44\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1bb2332a7ee26dd0b0de9b7fe266749f54820c99ab6a3bcb6f7e6b751d47ee2d\",\"dweb:/ipfs/QmcRWpaBeCYkhy68PR3B4AgD7asuQk7PwkWxrvJbZcikLF\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x74ed01eb66b923d0d0cfe3be84604ac04b76482a55f9dd655e1ef4d367f95bc2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5282825a626cfe924e504274b864a652b0023591fa66f06a067b25b51ba9b303\",\"dweb:/ipfs/QmeCfPykghhMc81VJTrHTC7sF6CRvaA1FXVq2pJhwYp1dV\"]},\"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x982c5cb790ab941d1e04f807120a71709d4c313ba0bfc16006447ffbd27fbbd5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8150ceb4ac947e8a442b2a9c017e01e880b2be2dd958f1fa9bc405f4c5a86508\",\"dweb:/ipfs/QmbcBmFX66AY6Kbhnd5gx7zpkgqnUafo43XnmayAM7zVdB\"]},\"@openzeppelin/contracts/utils/ReentrancyGuard.sol\":{\"keccak256\":\"0x11a5a79827df29e915a12740caf62fe21ebe27c08c9ae3e09abe9ee3ba3866d3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3cf0c69ab827e3251db9ee6a50647d62c90ba580a4d7bbff21f2bea39e7b2f4a\",\"dweb:/ipfs/QmZiKwtKU1SBX4RGfQtY7PZfiapbbu6SZ9vizGQD9UHjRA\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x8891738ffe910f0cf2da09566928589bf5d63f4524dd734fd9cedbac3274dd5c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://971f954442df5c2ef5b5ebf1eb245d7105d9fbacc7386ee5c796df1d45b21617\",\"dweb:/ipfs/QmadRjHbkicwqwwh61raUEapaVEtaLMcYbQZWs9gUkgj3u\"]},\"contracts/BatchTransfer.sol\":{\"keccak256\":\"0x2a4ddd468194fd71893abfda2d6040a7a99a10fb281029af7623570fd72c37e4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://22bccb9e070de44d38c35099577a25a26dc367c40f1e09aaf8ad29deb9c2ab4f\",\"dweb:/ipfs/QmQ3NQnJc3iGA8JC6bRriywy9VtnQh7mWm8rbpPGLoGxq4\"]}},\"version\":1}"}},"contracts/TokenCollector.sol":{"TokenCollector":{"abi":[{"inputs":[{"internalType":"address","name":"_recipient","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"ArrayLengthMismatch","type":"error"},{"inputs":[],"name":"EmptyArrays","type":"error"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"required","type":"uint256"},{"internalType":"uint256","name":"actual","type":"uint256"}],"name":"InsufficientAllowance","type":"error"},{"inputs":[],"name":"NotAuthorized","type":"error"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"OwnableInvalidOwner","type":"error"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"OwnableUnauthorizedAccount","type":"error"},{"inputs":[],"name":"ReentrancyGuardReentrantCall","type":"error"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"name":"SafeERC20FailedOperation","type":"error"},{"inputs":[],"name":"TransferFailed","type":"error"},{"inputs":[],"name":"ZeroAddress","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"tokenCount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"totalValue","type":"uint256"}],"name":"BatchClaimCompleted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"operator","type":"address"},{"indexed":false,"internalType":"bool","name":"authorized","type":"bool"}],"name":"OperatorUpdated","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":"oldRecipient","type":"address"},{"indexed":true,"internalType":"address","name":"newRecipient","type":"address"}],"name":"RecipientUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"token","type":"address"},{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"TokensClaimed","type":"event"},{"inputs":[{"internalType":"address[]","name":"tokens","type":"address[]"},{"internalType":"address[]","name":"froms","type":"address[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"name":"batchClaimFromMultiple","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"tokens","type":"address[]"},{"internalType":"address","name":"from","type":"address"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"name":"batchClaimTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"tokens","type":"address[]"},{"internalType":"address","name":"owner","type":"address"}],"name":"checkAllowances","outputs":[{"internalType":"uint256[]","name":"allowances","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"tokens","type":"address[]"},{"internalType":"address","name":"owner","type":"address"}],"name":"checkBalances","outputs":[{"internalType":"uint256[]","name":"balances","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"address","name":"from","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"claimToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"name":"emergencyWithdraw","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"emergencyWithdrawETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"operators","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"recipient","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_operator","type":"address"},{"internalType":"bool","name":"_authorized","type":"bool"}],"name":"setOperator","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_newRecipient","type":"address"}],"name":"setRecipient","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_newRecipient","type":"address"},{"internalType":"address","name":"_operator","type":"address"}],"name":"setRecipientAndAuthorizeOperator","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}],"evm":{"bytecode":{"functionDebugData":{"@_1364":{"entryPoint":null,"id":1364,"parameterSlots":1,"returnSlots":0},"@_50":{"entryPoint":null,"id":50,"parameterSlots":1,"returnSlots":0},"@_831":{"entryPoint":null,"id":831,"parameterSlots":0,"returnSlots":0},"@_transferOwnership_146":{"entryPoint":373,"id":146,"parameterSlots":1,"returnSlots":0},"abi_decode_t_address_fromMemory":{"entryPoint":652,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_address_fromMemory":{"entryPoint":675,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_address_to_t_address_fromStack":{"entryPoint":725,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":742,"id":null,"parameterSlots":2,"returnSlots":1},"allocate_unbounded":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":1},"cleanup_t_address":{"entryPoint":606,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint160":{"entryPoint":574,"id":null,"parameterSlots":1,"returnSlots":1},"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b":{"entryPoint":569,"id":null,"parameterSlots":0,"returnSlots":0},"validator_revert_t_address":{"entryPoint":626,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:1551:11","statements":[{"body":{"nodeType":"YulBlock","src":"47:35:11","statements":[{"nodeType":"YulAssignment","src":"57:19:11","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"73:2:11","type":"","value":"64"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"67:5:11"},"nodeType":"YulFunctionCall","src":"67:9:11"},"variableNames":[{"name":"memPtr","nodeType":"YulIdentifier","src":"57:6:11"}]}]},"name":"allocate_unbounded","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"memPtr","nodeType":"YulTypedName","src":"40:6:11","type":""}],"src":"7:75:11"},{"body":{"nodeType":"YulBlock","src":"177:28:11","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"194:1:11","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"197:1:11","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"187:6:11"},"nodeType":"YulFunctionCall","src":"187:12:11"},"nodeType":"YulExpressionStatement","src":"187:12:11"}]},"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nodeType":"YulFunctionDefinition","src":"88:117:11"},{"body":{"nodeType":"YulBlock","src":"300:28:11","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"317:1:11","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"320:1:11","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"310:6:11"},"nodeType":"YulFunctionCall","src":"310:12:11"},"nodeType":"YulExpressionStatement","src":"310:12:11"}]},"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nodeType":"YulFunctionDefinition","src":"211:117:11"},{"body":{"nodeType":"YulBlock","src":"379:81:11","statements":[{"nodeType":"YulAssignment","src":"389:65:11","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"404:5:11"},{"kind":"number","nodeType":"YulLiteral","src":"411:42:11","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"400:3:11"},"nodeType":"YulFunctionCall","src":"400:54:11"},"variableNames":[{"name":"cleaned","nodeType":"YulIdentifier","src":"389:7:11"}]}]},"name":"cleanup_t_uint160","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"361:5:11","type":""}],"returnVariables":[{"name":"cleaned","nodeType":"YulTypedName","src":"371:7:11","type":""}],"src":"334:126:11"},{"body":{"nodeType":"YulBlock","src":"511:51:11","statements":[{"nodeType":"YulAssignment","src":"521:35:11","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"550:5:11"}],"functionName":{"name":"cleanup_t_uint160","nodeType":"YulIdentifier","src":"532:17:11"},"nodeType":"YulFunctionCall","src":"532:24:11"},"variableNames":[{"name":"cleaned","nodeType":"YulIdentifier","src":"521:7:11"}]}]},"name":"cleanup_t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"493:5:11","type":""}],"returnVariables":[{"name":"cleaned","nodeType":"YulTypedName","src":"503:7:11","type":""}],"src":"466:96:11"},{"body":{"nodeType":"YulBlock","src":"611:79:11","statements":[{"body":{"nodeType":"YulBlock","src":"668:16:11","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"677:1:11","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"680:1:11","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"670:6:11"},"nodeType":"YulFunctionCall","src":"670:12:11"},"nodeType":"YulExpressionStatement","src":"670:12:11"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"634:5:11"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"659:5:11"}],"functionName":{"name":"cleanup_t_address","nodeType":"YulIdentifier","src":"641:17:11"},"nodeType":"YulFunctionCall","src":"641:24:11"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"631:2:11"},"nodeType":"YulFunctionCall","src":"631:35:11"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"624:6:11"},"nodeType":"YulFunctionCall","src":"624:43:11"},"nodeType":"YulIf","src":"621:63:11"}]},"name":"validator_revert_t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"604:5:11","type":""}],"src":"568:122:11"},{"body":{"nodeType":"YulBlock","src":"759:80:11","statements":[{"nodeType":"YulAssignment","src":"769:22:11","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"784:6:11"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"778:5:11"},"nodeType":"YulFunctionCall","src":"778:13:11"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"769:5:11"}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"827:5:11"}],"functionName":{"name":"validator_revert_t_address","nodeType":"YulIdentifier","src":"800:26:11"},"nodeType":"YulFunctionCall","src":"800:33:11"},"nodeType":"YulExpressionStatement","src":"800:33:11"}]},"name":"abi_decode_t_address_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"737:6:11","type":""},{"name":"end","nodeType":"YulTypedName","src":"745:3:11","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"753:5:11","type":""}],"src":"696:143:11"},{"body":{"nodeType":"YulBlock","src":"922:274:11","statements":[{"body":{"nodeType":"YulBlock","src":"968:83:11","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nodeType":"YulIdentifier","src":"970:77:11"},"nodeType":"YulFunctionCall","src":"970:79:11"},"nodeType":"YulExpressionStatement","src":"970:79:11"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"943:7:11"},{"name":"headStart","nodeType":"YulIdentifier","src":"952:9:11"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"939:3:11"},"nodeType":"YulFunctionCall","src":"939:23:11"},{"kind":"number","nodeType":"YulLiteral","src":"964:2:11","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"935:3:11"},"nodeType":"YulFunctionCall","src":"935:32:11"},"nodeType":"YulIf","src":"932:119:11"},{"nodeType":"YulBlock","src":"1061:128:11","statements":[{"nodeType":"YulVariableDeclaration","src":"1076:15:11","value":{"kind":"number","nodeType":"YulLiteral","src":"1090:1:11","type":"","value":"0"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"1080:6:11","type":""}]},{"nodeType":"YulAssignment","src":"1105:74:11","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1151:9:11"},{"name":"offset","nodeType":"YulIdentifier","src":"1162:6:11"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1147:3:11"},"nodeType":"YulFunctionCall","src":"1147:22:11"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"1171:7:11"}],"functionName":{"name":"abi_decode_t_address_fromMemory","nodeType":"YulIdentifier","src":"1115:31:11"},"nodeType":"YulFunctionCall","src":"1115:64:11"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1105:6:11"}]}]}]},"name":"abi_decode_tuple_t_address_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"892:9:11","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"903:7:11","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"915:6:11","type":""}],"src":"845:351:11"},{"body":{"nodeType":"YulBlock","src":"1267:53:11","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"1284:3:11"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1307:5:11"}],"functionName":{"name":"cleanup_t_address","nodeType":"YulIdentifier","src":"1289:17:11"},"nodeType":"YulFunctionCall","src":"1289:24:11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1277:6:11"},"nodeType":"YulFunctionCall","src":"1277:37:11"},"nodeType":"YulExpressionStatement","src":"1277:37:11"}]},"name":"abi_encode_t_address_to_t_address_fromStack","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"1255:5:11","type":""},{"name":"pos","nodeType":"YulTypedName","src":"1262:3:11","type":""}],"src":"1202:118:11"},{"body":{"nodeType":"YulBlock","src":"1424:124:11","statements":[{"nodeType":"YulAssignment","src":"1434:26:11","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1446:9:11"},{"kind":"number","nodeType":"YulLiteral","src":"1457:2:11","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1442:3:11"},"nodeType":"YulFunctionCall","src":"1442:18:11"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1434:4:11"}]},{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1514:6:11"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1527:9:11"},{"kind":"number","nodeType":"YulLiteral","src":"1538:1:11","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1523:3:11"},"nodeType":"YulFunctionCall","src":"1523:17:11"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nodeType":"YulIdentifier","src":"1470:43:11"},"nodeType":"YulFunctionCall","src":"1470:71:11"},"nodeType":"YulExpressionStatement","src":"1470:71:11"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1396:9:11","type":""},{"name":"value0","nodeType":"YulTypedName","src":"1408:6:11","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1419:4:11","type":""}],"src":"1326:222:11"}]},"contents":"{\n\n    function allocate_unbounded() -> memPtr {\n        memPtr := mload(64)\n    }\n\n    function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n        revert(0, 0)\n    }\n\n    function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n        revert(0, 0)\n    }\n\n    function cleanup_t_uint160(value) -> cleaned {\n        cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n    }\n\n    function cleanup_t_address(value) -> cleaned {\n        cleaned := cleanup_t_uint160(value)\n    }\n\n    function validator_revert_t_address(value) {\n        if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_address_fromMemory(offset, end) -> value {\n        value := mload(offset)\n        validator_revert_t_address(value)\n    }\n\n    function abi_decode_tuple_t_address_fromMemory(headStart, dataEnd) -> value0 {\n        if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_address_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n        mstore(pos, cleanup_t_address(value))\n    }\n\n    function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_address_to_t_address_fromStack(value0,  add(headStart, 0))\n\n    }\n\n}\n","id":11,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"60806040523480156200001157600080fd5b5060405162002540380380620025408339818101604052810190620000379190620002a3565b33600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603620000ad5760006040517f1e4fbdf7000000000000000000000000000000000000000000000000000000008152600401620000a49190620002e6565b60405180910390fd5b620000be816200017560201b60201c565b5060018081905550600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036200012d576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505062000303565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006200026b826200023e565b9050919050565b6200027d816200025e565b81146200028957600080fd5b50565b6000815190506200029d8162000272565b92915050565b600060208284031215620002bc57620002bb62000239565b5b6000620002cc848285016200028c565b91505092915050565b620002e0816200025e565b82525050565b6000602082019050620002fd6000830184620002d5565b92915050565b61222d80620003136000396000f3fe6080604052600436106100ec5760003560e01c8063558a72971161008a578063845360171161005957806384536017146102e75780638da5cb5b146102fe578063e52f377f14610329578063f2fde38b14610352576100f3565b8063558a72971461025357806366d003ac1461027c5780636ff1c9bc146102a7578063715018a6146102d0576100f3565b8063322eb93a116100c6578063322eb93a146101875780633bbed4a0146101c45780634130e293146101ed5780634c8e394814610216576100f3565b8063125bfb66146100f857806313e7c9d8146101215780631fae577c1461015e576100f3565b366100f357005b600080fd5b34801561010457600080fd5b5061011f600480360381019061011a9190611ac9565b61037b565b005b34801561012d57600080fd5b5061014860048036038101906101439190611b1c565b6104fd565b6040516101559190611b64565b60405180910390f35b34801561016a57600080fd5b5061018560048036038101906101809190611c3a565b61051d565b005b34801561019357600080fd5b506101ae60048036038101906101a99190611ccf565b61087f565b6040516101bb9190611ded565b60405180910390f35b3480156101d057600080fd5b506101eb60048036038101906101e69190611b1c565b6109b8565b005b3480156101f957600080fd5b50610214600480360381019061020f9190611e0f565b610aec565b005b34801561022257600080fd5b5061023d60048036038101906102389190611ccf565b610dce565b60405161024a9190611ded565b60405180910390f35b34801561025f57600080fd5b5061027a60048036038101906102759190611eef565b610f09565b005b34801561028857600080fd5b50610291611020565b60405161029e9190611f3e565b60405180910390f35b3480156102b357600080fd5b506102ce60048036038101906102c99190611b1c565b611046565b005b3480156102dc57600080fd5b506102e561112d565b005b3480156102f357600080fd5b506102fc611141565b005b34801561030a57600080fd5b506103136111c4565b6040516103209190611f3e565b60405180910390f35b34801561033557600080fd5b50610350600480360381019061034b9190611f59565b6111ed565b005b34801561035e57600080fd5b5061037960048036038101906103749190611b1c565b611401565b005b6103836111c4565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141580156104085750600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561043f576040517fea8e4eb500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610447611487565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614806104ae5750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b156104e5576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6104f08383836114cd565b6104f861172c565b505050565b60036020528060005260406000206000915054906101000a900460ff1681565b6105256111c4565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141580156105aa5750600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156105e1576040517fea8e4eb500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6105e9611487565b818190508585905014610628576040517fa24a13a600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008585905003610665576040517fa600c81d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036106cb576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000805b868690508110156107e25760008484838181106106ef576106ee611f99565b5b905060200201351180156107575750600073ffffffffffffffffffffffffffffffffffffffff1687878381811061072957610728611f99565b5b905060200201602081019061073e9190611b1c565b73ffffffffffffffffffffffffffffffffffffffff1614155b156107cf576107a787878381811061077257610771611f99565b5b90506020020160208101906107879190611b1c565b8686868581811061079b5761079a611f99565b5b905060200201356114cd565b8383828181106107ba576107b9611f99565b5b90506020020135826107cc9190611ff7565b91505b80806107da9061202b565b9150506106cf565b50600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f71237a03fe853c3c0682da9bfc664772440710f03c32039d7ff77644fbc823ce8888905084604051610867929190612082565b60405180910390a35061087861172c565b5050505050565b60608383905067ffffffffffffffff81111561089e5761089d6120ab565b5b6040519080825280602002602001820160405280156108cc5781602001602082028036833780820191505090505b50905060005b848490508110156109b0578484828181106108f0576108ef611f99565b5b90506020020160208101906109059190611b1c565b73ffffffffffffffffffffffffffffffffffffffff166370a08231846040518263ffffffff1660e01b815260040161093d9190611f3e565b602060405180830381865afa15801561095a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061097e91906120ef565b82828151811061099157610990611f99565b5b60200260200101818152505080806109a89061202b565b9150506108d2565b509392505050565b6109c0611735565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610a26576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f62e69886a5df0ba8ffcacbfc1388754e7abd9bde24b036354c561f1acd4e459360405160405180910390a35050565b610af46111c4565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614158015610b795750600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15610bb0576040517fea8e4eb500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610bb8611487565b8383905086869050141580610bd35750818190508686905014155b15610c0a576040517fa24a13a600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008686905003610c47576040517fa600c81d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60005b86869050811015610dbd576000838383818110610c6a57610c69611f99565b5b90506020020135118015610cd25750600073ffffffffffffffffffffffffffffffffffffffff16878783818110610ca457610ca3611f99565b5b9050602002016020810190610cb99190611b1c565b73ffffffffffffffffffffffffffffffffffffffff1614155b8015610d325750600073ffffffffffffffffffffffffffffffffffffffff16858583818110610d0457610d03611f99565b5b9050602002016020810190610d199190611b1c565b73ffffffffffffffffffffffffffffffffffffffff1614155b15610daa57610da9878783818110610d4d57610d4c611f99565b5b9050602002016020810190610d629190611b1c565b868684818110610d7557610d74611f99565b5b9050602002016020810190610d8a9190611b1c565b858585818110610d9d57610d9c611f99565b5b905060200201356114cd565b5b8080610db59061202b565b915050610c4a565b50610dc661172c565b505050505050565b60608383905067ffffffffffffffff811115610ded57610dec6120ab565b5b604051908082528060200260200182016040528015610e1b5781602001602082028036833780820191505090505b50905060005b84849050811015610f0157848482818110610e3f57610e3e611f99565b5b9050602002016020810190610e549190611b1c565b73ffffffffffffffffffffffffffffffffffffffff1663dd62ed3e84306040518363ffffffff1660e01b8152600401610e8e92919061211c565b602060405180830381865afa158015610eab573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ecf91906120ef565b828281518110610ee257610ee1611f99565b5b6020026020010181815250508080610ef99061202b565b915050610e21565b509392505050565b610f11611735565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610f77576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f966c160e1c4dbc7df8d69af4ace01e9297c3cf016397b7914971f2fbfa32672d826040516110149190611b64565b60405180910390a25050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61104e611735565b600081905060008173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161108e9190611f3e565b602060405180830381865afa1580156110ab573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110cf91906120ef565b9050600081111561112857611127600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16828473ffffffffffffffffffffffffffffffffffffffff166117bc9092919063ffffffff16565b5b505050565b611135611735565b61113f600061183b565b565b611149611735565b600047905060008111156111c157600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156111bf573d6000803e3d6000fd5b505b50565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6111f5611735565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16148061125c5750600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b15611293576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905082600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508273ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f62e69886a5df0ba8ffcacbfc1388754e7abd9bde24b036354c561f1acd4e459360405160405180910390a38173ffffffffffffffffffffffffffffffffffffffff167f966c160e1c4dbc7df8d69af4ace01e9297c3cf016397b7914971f2fbfa32672d60016040516113f49190611b64565b60405180910390a2505050565b611409611735565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361147b5760006040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081526004016114729190611f3e565b60405180910390fd5b6114848161183b565b50565b6002600154036114c3576040517f3ee5aeb500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6002600181905550565b600083905060008173ffffffffffffffffffffffffffffffffffffffff1663dd62ed3e85306040518363ffffffff1660e01b815260040161150f92919061211c565b602060405180830381865afa15801561152c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061155091906120ef565b90508281101561159b578483826040517f192b9e4e00000000000000000000000000000000000000000000000000000000815260040161159293929190612145565b60405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff166370a08231866040518263ffffffff1660e01b81526004016115d69190611f3e565b602060405180830381865afa1580156115f3573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061161791906120ef565b90506000818511611628578461162a565b815b905060008111156117235761168486600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16838773ffffffffffffffffffffffffffffffffffffffff166118ff909392919063ffffffff16565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167f40b4b442b70a20081fa377001b642c7d3618847a45b5b8ed2b938e30a3299ddb8460405161171a919061217c565b60405180910390a45b50505050505050565b60018081905550565b61173d611981565b73ffffffffffffffffffffffffffffffffffffffff1661175b6111c4565b73ffffffffffffffffffffffffffffffffffffffff16146117ba5761177e611981565b6040517f118cdaa70000000000000000000000000000000000000000000000000000000081526004016117b19190611f3e565b60405180910390fd5b565b611836838473ffffffffffffffffffffffffffffffffffffffff1663a9059cbb85856040516024016117ef929190612197565b604051602081830303815290604052915060e01b6020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050611989565b505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b61197b848573ffffffffffffffffffffffffffffffffffffffff166323b872dd868686604051602401611934939291906121c0565b604051602081830303815290604052915060e01b6020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050611989565b50505050565b600033905090565b600080602060008451602086016000885af1806119ac576040513d6000823e3d81fd5b3d9250600051915050600082146119c75760018114156119e3565b60008473ffffffffffffffffffffffffffffffffffffffff163b145b15611a2557836040517f5274afe7000000000000000000000000000000000000000000000000000000008152600401611a1c9190611f3e565b60405180910390fd5b50505050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611a6082611a35565b9050919050565b611a7081611a55565b8114611a7b57600080fd5b50565b600081359050611a8d81611a67565b92915050565b6000819050919050565b611aa681611a93565b8114611ab157600080fd5b50565b600081359050611ac381611a9d565b92915050565b600080600060608486031215611ae257611ae1611a2b565b5b6000611af086828701611a7e565b9350506020611b0186828701611a7e565b9250506040611b1286828701611ab4565b9150509250925092565b600060208284031215611b3257611b31611a2b565b5b6000611b4084828501611a7e565b91505092915050565b60008115159050919050565b611b5e81611b49565b82525050565b6000602082019050611b796000830184611b55565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f840112611ba457611ba3611b7f565b5b8235905067ffffffffffffffff811115611bc157611bc0611b84565b5b602083019150836020820283011115611bdd57611bdc611b89565b5b9250929050565b60008083601f840112611bfa57611bf9611b7f565b5b8235905067ffffffffffffffff811115611c1757611c16611b84565b5b602083019150836020820283011115611c3357611c32611b89565b5b9250929050565b600080600080600060608688031215611c5657611c55611a2b565b5b600086013567ffffffffffffffff811115611c7457611c73611a30565b5b611c8088828901611b8e565b95509550506020611c9388828901611a7e565b935050604086013567ffffffffffffffff811115611cb457611cb3611a30565b5b611cc088828901611be4565b92509250509295509295909350565b600080600060408486031215611ce857611ce7611a2b565b5b600084013567ffffffffffffffff811115611d0657611d05611a30565b5b611d1286828701611b8e565b93509350506020611d2586828701611a7e565b9150509250925092565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b611d6481611a93565b82525050565b6000611d768383611d5b565b60208301905092915050565b6000602082019050919050565b6000611d9a82611d2f565b611da48185611d3a565b9350611daf83611d4b565b8060005b83811015611de0578151611dc78882611d6a565b9750611dd283611d82565b925050600181019050611db3565b5085935050505092915050565b60006020820190508181036000830152611e078184611d8f565b905092915050565b60008060008060008060608789031215611e2c57611e2b611a2b565b5b600087013567ffffffffffffffff811115611e4a57611e49611a30565b5b611e5689828a01611b8e565b9650965050602087013567ffffffffffffffff811115611e7957611e78611a30565b5b611e8589828a01611b8e565b9450945050604087013567ffffffffffffffff811115611ea857611ea7611a30565b5b611eb489828a01611be4565b92509250509295509295509295565b611ecc81611b49565b8114611ed757600080fd5b50565b600081359050611ee981611ec3565b92915050565b60008060408385031215611f0657611f05611a2b565b5b6000611f1485828601611a7e565b9250506020611f2585828601611eda565b9150509250929050565b611f3881611a55565b82525050565b6000602082019050611f536000830184611f2f565b92915050565b60008060408385031215611f7057611f6f611a2b565b5b6000611f7e85828601611a7e565b9250506020611f8f85828601611a7e565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061200282611a93565b915061200d83611a93565b925082820190508082111561202557612024611fc8565b5b92915050565b600061203682611a93565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361206857612067611fc8565b5b600182019050919050565b61207c81611a93565b82525050565b60006040820190506120976000830185612073565b6120a46020830184612073565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000815190506120e981611a9d565b92915050565b60006020828403121561210557612104611a2b565b5b6000612113848285016120da565b91505092915050565b60006040820190506121316000830185611f2f565b61213e6020830184611f2f565b9392505050565b600060608201905061215a6000830186611f2f565b6121676020830185612073565b6121746040830184612073565b949350505050565b60006020820190506121916000830184612073565b92915050565b60006040820190506121ac6000830185611f2f565b6121b96020830184612073565b9392505050565b60006060820190506121d56000830186611f2f565b6121e26020830185611f2f565b6121ef6040830184612073565b94935050505056fea26469706673582212203f7108ad84125efe51b0dedac52ef859f7fa3aa714cd12a90bceb0eb79f8871464736f6c63430008140033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH3 0x11 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH3 0x2540 CODESIZE SUB DUP1 PUSH3 0x2540 DUP4 CODECOPY DUP2 DUP2 ADD PUSH1 0x40 MSTORE DUP2 ADD SWAP1 PUSH3 0x37 SWAP2 SWAP1 PUSH3 0x2A3 JUMP JUMPDEST CALLER PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH3 0xAD JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x1E4FBDF700000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH3 0xA4 SWAP2 SWAP1 PUSH3 0x2E6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH3 0xBE DUP2 PUSH3 0x175 PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST POP PUSH1 0x1 DUP1 DUP2 SWAP1 SSTORE POP PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH3 0x12D JUMPI PUSH1 0x40 MLOAD PUSH32 0xD92E233D00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0x2 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP POP PUSH3 0x303 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP DUP2 PUSH1 0x0 DUP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x26B DUP3 PUSH3 0x23E JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH3 0x27D DUP2 PUSH3 0x25E JUMP JUMPDEST DUP2 EQ PUSH3 0x289 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH3 0x29D DUP2 PUSH3 0x272 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH3 0x2BC JUMPI PUSH3 0x2BB PUSH3 0x239 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH3 0x2CC DUP5 DUP3 DUP6 ADD PUSH3 0x28C JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH3 0x2E0 DUP2 PUSH3 0x25E JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH3 0x2FD PUSH1 0x0 DUP4 ADD DUP5 PUSH3 0x2D5 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x222D DUP1 PUSH3 0x313 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0xEC JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x558A7297 GT PUSH2 0x8A JUMPI DUP1 PUSH4 0x84536017 GT PUSH2 0x59 JUMPI DUP1 PUSH4 0x84536017 EQ PUSH2 0x2E7 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x2FE JUMPI DUP1 PUSH4 0xE52F377F EQ PUSH2 0x329 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x352 JUMPI PUSH2 0xF3 JUMP JUMPDEST DUP1 PUSH4 0x558A7297 EQ PUSH2 0x253 JUMPI DUP1 PUSH4 0x66D003AC EQ PUSH2 0x27C JUMPI DUP1 PUSH4 0x6FF1C9BC EQ PUSH2 0x2A7 JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x2D0 JUMPI PUSH2 0xF3 JUMP JUMPDEST DUP1 PUSH4 0x322EB93A GT PUSH2 0xC6 JUMPI DUP1 PUSH4 0x322EB93A EQ PUSH2 0x187 JUMPI DUP1 PUSH4 0x3BBED4A0 EQ PUSH2 0x1C4 JUMPI DUP1 PUSH4 0x4130E293 EQ PUSH2 0x1ED JUMPI DUP1 PUSH4 0x4C8E3948 EQ PUSH2 0x216 JUMPI PUSH2 0xF3 JUMP JUMPDEST DUP1 PUSH4 0x125BFB66 EQ PUSH2 0xF8 JUMPI DUP1 PUSH4 0x13E7C9D8 EQ PUSH2 0x121 JUMPI DUP1 PUSH4 0x1FAE577C EQ PUSH2 0x15E JUMPI PUSH2 0xF3 JUMP JUMPDEST CALLDATASIZE PUSH2 0xF3 JUMPI STOP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x104 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x11F PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x11A SWAP2 SWAP1 PUSH2 0x1AC9 JUMP JUMPDEST PUSH2 0x37B JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x12D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x148 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x143 SWAP2 SWAP1 PUSH2 0x1B1C JUMP JUMPDEST PUSH2 0x4FD JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x155 SWAP2 SWAP1 PUSH2 0x1B64 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x16A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x185 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x180 SWAP2 SWAP1 PUSH2 0x1C3A JUMP JUMPDEST PUSH2 0x51D JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x193 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1AE PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1A9 SWAP2 SWAP1 PUSH2 0x1CCF JUMP JUMPDEST PUSH2 0x87F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1BB SWAP2 SWAP1 PUSH2 0x1DED JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1D0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1EB PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1E6 SWAP2 SWAP1 PUSH2 0x1B1C JUMP JUMPDEST PUSH2 0x9B8 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1F9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x214 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x20F SWAP2 SWAP1 PUSH2 0x1E0F JUMP JUMPDEST PUSH2 0xAEC JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x222 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x23D PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x238 SWAP2 SWAP1 PUSH2 0x1CCF JUMP JUMPDEST PUSH2 0xDCE JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x24A SWAP2 SWAP1 PUSH2 0x1DED JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x25F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x27A PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x275 SWAP2 SWAP1 PUSH2 0x1EEF JUMP JUMPDEST PUSH2 0xF09 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x288 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x291 PUSH2 0x1020 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x29E SWAP2 SWAP1 PUSH2 0x1F3E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2B3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2CE PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x2C9 SWAP2 SWAP1 PUSH2 0x1B1C JUMP JUMPDEST PUSH2 0x1046 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2DC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2E5 PUSH2 0x112D JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2F3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2FC PUSH2 0x1141 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x30A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x313 PUSH2 0x11C4 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x320 SWAP2 SWAP1 PUSH2 0x1F3E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x335 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x350 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x34B SWAP2 SWAP1 PUSH2 0x1F59 JUMP JUMPDEST PUSH2 0x11ED JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x35E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x379 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x374 SWAP2 SWAP1 PUSH2 0x1B1C JUMP JUMPDEST PUSH2 0x1401 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x383 PUSH2 0x11C4 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO DUP1 ISZERO PUSH2 0x408 JUMPI POP PUSH1 0x3 PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO JUMPDEST ISZERO PUSH2 0x43F JUMPI PUSH1 0x40 MLOAD PUSH32 0xEA8E4EB500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x447 PUSH2 0x1487 JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ DUP1 PUSH2 0x4AE JUMPI POP PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ JUMPDEST ISZERO PUSH2 0x4E5 JUMPI PUSH1 0x40 MLOAD PUSH32 0xD92E233D00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x4F0 DUP4 DUP4 DUP4 PUSH2 0x14CD JUMP JUMPDEST PUSH2 0x4F8 PUSH2 0x172C JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x3 PUSH1 0x20 MSTORE DUP1 PUSH1 0x0 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP2 POP SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH2 0x525 PUSH2 0x11C4 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO DUP1 ISZERO PUSH2 0x5AA JUMPI POP PUSH1 0x3 PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO JUMPDEST ISZERO PUSH2 0x5E1 JUMPI PUSH1 0x40 MLOAD PUSH32 0xEA8E4EB500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x5E9 PUSH2 0x1487 JUMP JUMPDEST DUP2 DUP2 SWAP1 POP DUP6 DUP6 SWAP1 POP EQ PUSH2 0x628 JUMPI PUSH1 0x40 MLOAD PUSH32 0xA24A13A600000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP6 DUP6 SWAP1 POP SUB PUSH2 0x665 JUMPI PUSH1 0x40 MLOAD PUSH32 0xA600C81D00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x6CB JUMPI PUSH1 0x40 MLOAD PUSH32 0xD92E233D00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 JUMPDEST DUP7 DUP7 SWAP1 POP DUP2 LT ISZERO PUSH2 0x7E2 JUMPI PUSH1 0x0 DUP5 DUP5 DUP4 DUP2 DUP2 LT PUSH2 0x6EF JUMPI PUSH2 0x6EE PUSH2 0x1F99 JUMP JUMPDEST JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD CALLDATALOAD GT DUP1 ISZERO PUSH2 0x757 JUMPI POP PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP8 DUP8 DUP4 DUP2 DUP2 LT PUSH2 0x729 JUMPI PUSH2 0x728 PUSH2 0x1F99 JUMP JUMPDEST JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x73E SWAP2 SWAP1 PUSH2 0x1B1C JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO JUMPDEST ISZERO PUSH2 0x7CF JUMPI PUSH2 0x7A7 DUP8 DUP8 DUP4 DUP2 DUP2 LT PUSH2 0x772 JUMPI PUSH2 0x771 PUSH2 0x1F99 JUMP JUMPDEST JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x787 SWAP2 SWAP1 PUSH2 0x1B1C JUMP JUMPDEST DUP7 DUP7 DUP7 DUP6 DUP2 DUP2 LT PUSH2 0x79B JUMPI PUSH2 0x79A PUSH2 0x1F99 JUMP JUMPDEST JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD CALLDATALOAD PUSH2 0x14CD JUMP JUMPDEST DUP4 DUP4 DUP3 DUP2 DUP2 LT PUSH2 0x7BA JUMPI PUSH2 0x7B9 PUSH2 0x1F99 JUMP JUMPDEST JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD CALLDATALOAD DUP3 PUSH2 0x7CC SWAP2 SWAP1 PUSH2 0x1FF7 JUMP JUMPDEST SWAP2 POP JUMPDEST DUP1 DUP1 PUSH2 0x7DA SWAP1 PUSH2 0x202B JUMP JUMPDEST SWAP2 POP POP PUSH2 0x6CF JUMP JUMPDEST POP PUSH1 0x2 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x71237A03FE853C3C0682DA9BFC664772440710F03C32039D7FF77644FBC823CE DUP9 DUP9 SWAP1 POP DUP5 PUSH1 0x40 MLOAD PUSH2 0x867 SWAP3 SWAP2 SWAP1 PUSH2 0x2082 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP PUSH2 0x878 PUSH2 0x172C JUMP JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 DUP4 DUP4 SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x89E JUMPI PUSH2 0x89D PUSH2 0x20AB JUMP JUMPDEST JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x8CC JUMPI DUP2 PUSH1 0x20 ADD PUSH1 0x20 DUP3 MUL DUP1 CALLDATASIZE DUP4 CALLDATACOPY DUP1 DUP3 ADD SWAP2 POP POP SWAP1 POP JUMPDEST POP SWAP1 POP PUSH1 0x0 JUMPDEST DUP5 DUP5 SWAP1 POP DUP2 LT ISZERO PUSH2 0x9B0 JUMPI DUP5 DUP5 DUP3 DUP2 DUP2 LT PUSH2 0x8F0 JUMPI PUSH2 0x8EF PUSH2 0x1F99 JUMP JUMPDEST JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x905 SWAP2 SWAP1 PUSH2 0x1B1C JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 DUP5 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x93D SWAP2 SWAP1 PUSH2 0x1F3E JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x95A JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x97E SWAP2 SWAP1 PUSH2 0x20EF JUMP JUMPDEST DUP3 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x991 JUMPI PUSH2 0x990 PUSH2 0x1F99 JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD DUP2 DUP2 MSTORE POP POP DUP1 DUP1 PUSH2 0x9A8 SWAP1 PUSH2 0x202B JUMP JUMPDEST SWAP2 POP POP PUSH2 0x8D2 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0x9C0 PUSH2 0x1735 JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0xA26 JUMPI PUSH1 0x40 MLOAD PUSH32 0xD92E233D00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x2 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP DUP2 PUSH1 0x2 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x62E69886A5DF0BA8FFCACBFC1388754E7ABD9BDE24B036354C561F1ACD4E4593 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH2 0xAF4 PUSH2 0x11C4 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO DUP1 ISZERO PUSH2 0xB79 JUMPI POP PUSH1 0x3 PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO JUMPDEST ISZERO PUSH2 0xBB0 JUMPI PUSH1 0x40 MLOAD PUSH32 0xEA8E4EB500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xBB8 PUSH2 0x1487 JUMP JUMPDEST DUP4 DUP4 SWAP1 POP DUP7 DUP7 SWAP1 POP EQ ISZERO DUP1 PUSH2 0xBD3 JUMPI POP DUP2 DUP2 SWAP1 POP DUP7 DUP7 SWAP1 POP EQ ISZERO JUMPDEST ISZERO PUSH2 0xC0A JUMPI PUSH1 0x40 MLOAD PUSH32 0xA24A13A600000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP7 DUP7 SWAP1 POP SUB PUSH2 0xC47 JUMPI PUSH1 0x40 MLOAD PUSH32 0xA600C81D00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 JUMPDEST DUP7 DUP7 SWAP1 POP DUP2 LT ISZERO PUSH2 0xDBD JUMPI PUSH1 0x0 DUP4 DUP4 DUP4 DUP2 DUP2 LT PUSH2 0xC6A JUMPI PUSH2 0xC69 PUSH2 0x1F99 JUMP JUMPDEST JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD CALLDATALOAD GT DUP1 ISZERO PUSH2 0xCD2 JUMPI POP PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP8 DUP8 DUP4 DUP2 DUP2 LT PUSH2 0xCA4 JUMPI PUSH2 0xCA3 PUSH2 0x1F99 JUMP JUMPDEST JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0xCB9 SWAP2 SWAP1 PUSH2 0x1B1C JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO JUMPDEST DUP1 ISZERO PUSH2 0xD32 JUMPI POP PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP6 DUP6 DUP4 DUP2 DUP2 LT PUSH2 0xD04 JUMPI PUSH2 0xD03 PUSH2 0x1F99 JUMP JUMPDEST JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0xD19 SWAP2 SWAP1 PUSH2 0x1B1C JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO JUMPDEST ISZERO PUSH2 0xDAA JUMPI PUSH2 0xDA9 DUP8 DUP8 DUP4 DUP2 DUP2 LT PUSH2 0xD4D JUMPI PUSH2 0xD4C PUSH2 0x1F99 JUMP JUMPDEST JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0xD62 SWAP2 SWAP1 PUSH2 0x1B1C JUMP JUMPDEST DUP7 DUP7 DUP5 DUP2 DUP2 LT PUSH2 0xD75 JUMPI PUSH2 0xD74 PUSH2 0x1F99 JUMP JUMPDEST JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0xD8A SWAP2 SWAP1 PUSH2 0x1B1C JUMP JUMPDEST DUP6 DUP6 DUP6 DUP2 DUP2 LT PUSH2 0xD9D JUMPI PUSH2 0xD9C PUSH2 0x1F99 JUMP JUMPDEST JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD CALLDATALOAD PUSH2 0x14CD JUMP JUMPDEST JUMPDEST DUP1 DUP1 PUSH2 0xDB5 SWAP1 PUSH2 0x202B JUMP JUMPDEST SWAP2 POP POP PUSH2 0xC4A JUMP JUMPDEST POP PUSH2 0xDC6 PUSH2 0x172C JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 DUP4 DUP4 SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xDED JUMPI PUSH2 0xDEC PUSH2 0x20AB JUMP JUMPDEST JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0xE1B JUMPI DUP2 PUSH1 0x20 ADD PUSH1 0x20 DUP3 MUL DUP1 CALLDATASIZE DUP4 CALLDATACOPY DUP1 DUP3 ADD SWAP2 POP POP SWAP1 POP JUMPDEST POP SWAP1 POP PUSH1 0x0 JUMPDEST DUP5 DUP5 SWAP1 POP DUP2 LT ISZERO PUSH2 0xF01 JUMPI DUP5 DUP5 DUP3 DUP2 DUP2 LT PUSH2 0xE3F JUMPI PUSH2 0xE3E PUSH2 0x1F99 JUMP JUMPDEST JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0xE54 SWAP2 SWAP1 PUSH2 0x1B1C JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xDD62ED3E DUP5 ADDRESS PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xE8E SWAP3 SWAP2 SWAP1 PUSH2 0x211C JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xEAB JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xECF SWAP2 SWAP1 PUSH2 0x20EF JUMP JUMPDEST DUP3 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0xEE2 JUMPI PUSH2 0xEE1 PUSH2 0x1F99 JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD DUP2 DUP2 MSTORE POP POP DUP1 DUP1 PUSH2 0xEF9 SWAP1 PUSH2 0x202B JUMP JUMPDEST SWAP2 POP POP PUSH2 0xE21 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0xF11 PUSH2 0x1735 JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0xF77 JUMPI PUSH1 0x40 MLOAD PUSH32 0xD92E233D00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0x3 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x966C160E1C4DBC7DF8D69AF4ACE01E9297C3CF016397B7914971F2FBFA32672D DUP3 PUSH1 0x40 MLOAD PUSH2 0x1014 SWAP2 SWAP1 PUSH2 0x1B64 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP POP JUMP JUMPDEST PUSH1 0x2 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH2 0x104E PUSH2 0x1735 JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP PUSH1 0x0 DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x108E SWAP2 SWAP1 PUSH2 0x1F3E JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x10AB JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x10CF SWAP2 SWAP1 PUSH2 0x20EF JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 GT ISZERO PUSH2 0x1128 JUMPI PUSH2 0x1127 PUSH1 0x2 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x17BC SWAP1 SWAP3 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST JUMPDEST POP POP POP JUMP JUMPDEST PUSH2 0x1135 PUSH2 0x1735 JUMP JUMPDEST PUSH2 0x113F PUSH1 0x0 PUSH2 0x183B JUMP JUMPDEST JUMP JUMPDEST PUSH2 0x1149 PUSH2 0x1735 JUMP JUMPDEST PUSH1 0x0 SELFBALANCE SWAP1 POP PUSH1 0x0 DUP2 GT ISZERO PUSH2 0x11C1 JUMPI PUSH1 0x2 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x8FC DUP3 SWAP1 DUP2 ISZERO MUL SWAP1 PUSH1 0x40 MLOAD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0x11BF JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x11F5 PUSH2 0x1735 JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ DUP1 PUSH2 0x125C JUMPI POP PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ JUMPDEST ISZERO PUSH2 0x1293 JUMPI PUSH1 0x40 MLOAD PUSH32 0xD92E233D00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x2 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP DUP3 PUSH1 0x2 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH1 0x1 PUSH1 0x3 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x62E69886A5DF0BA8FFCACBFC1388754E7ABD9BDE24B036354C561F1ACD4E4593 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x966C160E1C4DBC7DF8D69AF4ACE01E9297C3CF016397B7914971F2FBFA32672D PUSH1 0x1 PUSH1 0x40 MLOAD PUSH2 0x13F4 SWAP2 SWAP1 PUSH2 0x1B64 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP POP POP JUMP JUMPDEST PUSH2 0x1409 PUSH2 0x1735 JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x147B JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x1E4FBDF700000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1472 SWAP2 SWAP1 PUSH2 0x1F3E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x1484 DUP2 PUSH2 0x183B JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x2 PUSH1 0x1 SLOAD SUB PUSH2 0x14C3 JUMPI PUSH1 0x40 MLOAD PUSH32 0x3EE5AEB500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x2 PUSH1 0x1 DUP2 SWAP1 SSTORE POP JUMP JUMPDEST PUSH1 0x0 DUP4 SWAP1 POP PUSH1 0x0 DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xDD62ED3E DUP6 ADDRESS PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x150F SWAP3 SWAP2 SWAP1 PUSH2 0x211C JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x152C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1550 SWAP2 SWAP1 PUSH2 0x20EF JUMP JUMPDEST SWAP1 POP DUP3 DUP2 LT ISZERO PUSH2 0x159B JUMPI DUP5 DUP4 DUP3 PUSH1 0x40 MLOAD PUSH32 0x192B9E4E00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1592 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2145 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 DUP7 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x15D6 SWAP2 SWAP1 PUSH2 0x1F3E JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x15F3 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1617 SWAP2 SWAP1 PUSH2 0x20EF JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 DUP6 GT PUSH2 0x1628 JUMPI DUP5 PUSH2 0x162A JUMP JUMPDEST DUP2 JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 GT ISZERO PUSH2 0x1723 JUMPI PUSH2 0x1684 DUP7 PUSH1 0x2 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 DUP8 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x18FF SWAP1 SWAP4 SWAP3 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH1 0x2 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP9 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x40B4B442B70A20081FA377001B642C7D3618847A45B5B8ED2B938E30A3299DDB DUP5 PUSH1 0x40 MLOAD PUSH2 0x171A SWAP2 SWAP1 PUSH2 0x217C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 JUMPDEST POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 DUP1 DUP2 SWAP1 SSTORE POP JUMP JUMPDEST PUSH2 0x173D PUSH2 0x1981 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x175B PUSH2 0x11C4 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x17BA JUMPI PUSH2 0x177E PUSH2 0x1981 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x118CDAA700000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x17B1 SWAP2 SWAP1 PUSH2 0x1F3E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST JUMP JUMPDEST PUSH2 0x1836 DUP4 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xA9059CBB DUP6 DUP6 PUSH1 0x40 MLOAD PUSH1 0x24 ADD PUSH2 0x17EF SWAP3 SWAP2 SWAP1 PUSH2 0x2197 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP2 POP PUSH1 0xE0 SHL PUSH1 0x20 DUP3 ADD DUP1 MLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 DUP2 DUP4 AND OR DUP4 MSTORE POP POP POP POP PUSH2 0x1989 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP DUP2 PUSH1 0x0 DUP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH2 0x197B DUP5 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x23B872DD DUP7 DUP7 DUP7 PUSH1 0x40 MLOAD PUSH1 0x24 ADD PUSH2 0x1934 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x21C0 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP2 POP PUSH1 0xE0 SHL PUSH1 0x20 DUP3 ADD DUP1 MLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 DUP2 DUP4 AND OR DUP4 MSTORE POP POP POP POP PUSH2 0x1989 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 CALLER SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x20 PUSH1 0x0 DUP5 MLOAD PUSH1 0x20 DUP7 ADD PUSH1 0x0 DUP9 GAS CALL DUP1 PUSH2 0x19AC JUMPI PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY RETURNDATASIZE DUP2 REVERT JUMPDEST RETURNDATASIZE SWAP3 POP PUSH1 0x0 MLOAD SWAP2 POP POP PUSH1 0x0 DUP3 EQ PUSH2 0x19C7 JUMPI PUSH1 0x1 DUP2 EQ ISZERO PUSH2 0x19E3 JUMP JUMPDEST PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EXTCODESIZE EQ JUMPDEST ISZERO PUSH2 0x1A25 JUMPI DUP4 PUSH1 0x40 MLOAD PUSH32 0x5274AFE700000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1A1C SWAP2 SWAP1 PUSH2 0x1F3E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1A60 DUP3 PUSH2 0x1A35 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1A70 DUP2 PUSH2 0x1A55 JUMP JUMPDEST DUP2 EQ PUSH2 0x1A7B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1A8D DUP2 PUSH2 0x1A67 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1AA6 DUP2 PUSH2 0x1A93 JUMP JUMPDEST DUP2 EQ PUSH2 0x1AB1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1AC3 DUP2 PUSH2 0x1A9D JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x1AE2 JUMPI PUSH2 0x1AE1 PUSH2 0x1A2B JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1AF0 DUP7 DUP3 DUP8 ADD PUSH2 0x1A7E JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x1B01 DUP7 DUP3 DUP8 ADD PUSH2 0x1A7E JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0x1B12 DUP7 DUP3 DUP8 ADD PUSH2 0x1AB4 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1B32 JUMPI PUSH2 0x1B31 PUSH2 0x1A2B JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1B40 DUP5 DUP3 DUP6 ADD PUSH2 0x1A7E JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1B5E DUP2 PUSH2 0x1B49 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1B79 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1B55 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x1BA4 JUMPI PUSH2 0x1BA3 PUSH2 0x1B7F JUMP JUMPDEST JUMPDEST DUP3 CALLDATALOAD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1BC1 JUMPI PUSH2 0x1BC0 PUSH2 0x1B84 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0x1BDD JUMPI PUSH2 0x1BDC PUSH2 0x1B89 JUMP JUMPDEST JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x1BFA JUMPI PUSH2 0x1BF9 PUSH2 0x1B7F JUMP JUMPDEST JUMPDEST DUP3 CALLDATALOAD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1C17 JUMPI PUSH2 0x1C16 PUSH2 0x1B84 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0x1C33 JUMPI PUSH2 0x1C32 PUSH2 0x1B89 JUMP JUMPDEST JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x1C56 JUMPI PUSH2 0x1C55 PUSH2 0x1A2B JUMP JUMPDEST JUMPDEST PUSH1 0x0 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1C74 JUMPI PUSH2 0x1C73 PUSH2 0x1A30 JUMP JUMPDEST JUMPDEST PUSH2 0x1C80 DUP9 DUP3 DUP10 ADD PUSH2 0x1B8E JUMP JUMPDEST SWAP6 POP SWAP6 POP POP PUSH1 0x20 PUSH2 0x1C93 DUP9 DUP3 DUP10 ADD PUSH2 0x1A7E JUMP JUMPDEST SWAP4 POP POP PUSH1 0x40 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1CB4 JUMPI PUSH2 0x1CB3 PUSH2 0x1A30 JUMP JUMPDEST JUMPDEST PUSH2 0x1CC0 DUP9 DUP3 DUP10 ADD PUSH2 0x1BE4 JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 SWAP1 SWAP4 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x40 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x1CE8 JUMPI PUSH2 0x1CE7 PUSH2 0x1A2B JUMP JUMPDEST JUMPDEST PUSH1 0x0 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1D06 JUMPI PUSH2 0x1D05 PUSH2 0x1A30 JUMP JUMPDEST JUMPDEST PUSH2 0x1D12 DUP7 DUP3 DUP8 ADD PUSH2 0x1B8E JUMP JUMPDEST SWAP4 POP SWAP4 POP POP PUSH1 0x20 PUSH2 0x1D25 DUP7 DUP3 DUP8 ADD PUSH2 0x1A7E JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1D64 DUP2 PUSH2 0x1A93 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1D76 DUP4 DUP4 PUSH2 0x1D5B JUMP JUMPDEST PUSH1 0x20 DUP4 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1D9A DUP3 PUSH2 0x1D2F JUMP JUMPDEST PUSH2 0x1DA4 DUP2 DUP6 PUSH2 0x1D3A JUMP JUMPDEST SWAP4 POP PUSH2 0x1DAF DUP4 PUSH2 0x1D4B JUMP JUMPDEST DUP1 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x1DE0 JUMPI DUP2 MLOAD PUSH2 0x1DC7 DUP9 DUP3 PUSH2 0x1D6A JUMP JUMPDEST SWAP8 POP PUSH2 0x1DD2 DUP4 PUSH2 0x1D82 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH2 0x1DB3 JUMP JUMPDEST POP DUP6 SWAP4 POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x1E07 DUP2 DUP5 PUSH2 0x1D8F JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x60 DUP8 DUP10 SUB SLT ISZERO PUSH2 0x1E2C JUMPI PUSH2 0x1E2B PUSH2 0x1A2B JUMP JUMPDEST JUMPDEST PUSH1 0x0 DUP8 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1E4A JUMPI PUSH2 0x1E49 PUSH2 0x1A30 JUMP JUMPDEST JUMPDEST PUSH2 0x1E56 DUP10 DUP3 DUP11 ADD PUSH2 0x1B8E JUMP JUMPDEST SWAP7 POP SWAP7 POP POP PUSH1 0x20 DUP8 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1E79 JUMPI PUSH2 0x1E78 PUSH2 0x1A30 JUMP JUMPDEST JUMPDEST PUSH2 0x1E85 DUP10 DUP3 DUP11 ADD PUSH2 0x1B8E JUMP JUMPDEST SWAP5 POP SWAP5 POP POP PUSH1 0x40 DUP8 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1EA8 JUMPI PUSH2 0x1EA7 PUSH2 0x1A30 JUMP JUMPDEST JUMPDEST PUSH2 0x1EB4 DUP10 DUP3 DUP11 ADD PUSH2 0x1BE4 JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 POP SWAP3 SWAP6 JUMP JUMPDEST PUSH2 0x1ECC DUP2 PUSH2 0x1B49 JUMP JUMPDEST DUP2 EQ PUSH2 0x1ED7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1EE9 DUP2 PUSH2 0x1EC3 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1F06 JUMPI PUSH2 0x1F05 PUSH2 0x1A2B JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1F14 DUP6 DUP3 DUP7 ADD PUSH2 0x1A7E JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x1F25 DUP6 DUP3 DUP7 ADD PUSH2 0x1EDA JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH2 0x1F38 DUP2 PUSH2 0x1A55 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1F53 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1F2F JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1F70 JUMPI PUSH2 0x1F6F PUSH2 0x1A2B JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1F7E DUP6 DUP3 DUP7 ADD PUSH2 0x1A7E JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x1F8F DUP6 DUP3 DUP7 ADD PUSH2 0x1A7E JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x2002 DUP3 PUSH2 0x1A93 JUMP JUMPDEST SWAP2 POP PUSH2 0x200D DUP4 PUSH2 0x1A93 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP DUP1 DUP3 GT ISZERO PUSH2 0x2025 JUMPI PUSH2 0x2024 PUSH2 0x1FC8 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2036 DUP3 PUSH2 0x1A93 JUMP JUMPDEST SWAP2 POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 SUB PUSH2 0x2068 JUMPI PUSH2 0x2067 PUSH2 0x1FC8 JUMP JUMPDEST JUMPDEST PUSH1 0x1 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x207C DUP2 PUSH2 0x1A93 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x2097 PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x2073 JUMP JUMPDEST PUSH2 0x20A4 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x2073 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x20E9 DUP2 PUSH2 0x1A9D JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2105 JUMPI PUSH2 0x2104 PUSH2 0x1A2B JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x2113 DUP5 DUP3 DUP6 ADD PUSH2 0x20DA JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x2131 PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x1F2F JUMP JUMPDEST PUSH2 0x213E PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x1F2F JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0x215A PUSH1 0x0 DUP4 ADD DUP7 PUSH2 0x1F2F JUMP JUMPDEST PUSH2 0x2167 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x2073 JUMP JUMPDEST PUSH2 0x2174 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x2073 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x2191 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x2073 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x21AC PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x1F2F JUMP JUMPDEST PUSH2 0x21B9 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x2073 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0x21D5 PUSH1 0x0 DUP4 ADD DUP7 PUSH2 0x1F2F JUMP JUMPDEST PUSH2 0x21E2 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x1F2F JUMP JUMPDEST PUSH2 0x21EF PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x2073 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 EXTCODEHASH PUSH18 0x8AD84125EFE51B0DEDAC52EF859F7FA3AA7 EQ 0xCD SLT 0xA9 SIGNEXTEND 0xCE 0xB0 0xEB PUSH26 0xF8871464736F6C63430008140033000000000000000000000000 ","sourceMap":"714:8192:10:-:0;;;2043:154;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2083:10;1297:1:0;1273:26;;:12;:26;;;1269:95;;1350:1;1322:31;;;;;;;;;;;:::i;:::-;;;;;;;;1269:95;1373:32;1392:12;1373:18;;;:32;;:::i;:::-;1225:187;1857:1:7;2061:7;:21;;;;2132:1:10::1;2110:24;;:10;:24;;::::0;2106:50:::1;;2143:13;;;;;;;;;;;;;;2106:50;2179:10;2167:9;;:22;;;;;;;;;;;;;;;;;;2043:154:::0;714:8192;;2912:187:0;2985:16;3004:6;;;;;;;;;;;2985:25;;3029:8;3020:6;;:17;;;;;;;;;;;;;;;;;;3083:8;3052:40;;3073:8;3052:40;;;;;;;;;;;;2975:124;2912:187;:::o;88:117:11:-;197:1;194;187:12;334:126;371:7;411:42;404:5;400:54;389:65;;334:126;;;:::o;466:96::-;503:7;532:24;550:5;532:24;:::i;:::-;521:35;;466:96;;;:::o;568:122::-;641:24;659:5;641:24;:::i;:::-;634:5;631:35;621:63;;680:1;677;670:12;621:63;568:122;:::o;696:143::-;753:5;784:6;778:13;769:22;;800:33;827:5;800:33;:::i;:::-;696:143;;;;:::o;845:351::-;915:6;964:2;952:9;943:7;939:23;935:32;932:119;;;970:79;;:::i;:::-;932:119;1090:1;1115:64;1171:7;1162:6;1151:9;1147:22;1115:64;:::i;:::-;1105:74;;1061:128;845:351;;;;:::o;1202:118::-;1289:24;1307:5;1289:24;:::i;:::-;1284:3;1277:37;1202:118;;:::o;1326:222::-;1419:4;1457:2;1446:9;1442:18;1434:26;;1470:71;1538:1;1527:9;1523:17;1514:6;1470:71;:::i;:::-;1326:222;;;;:::o;714:8192:10:-;;;;;;;"},"deployedBytecode":{"functionDebugData":{"@_1961":{"entryPoint":null,"id":1961,"parameterSlots":0,"returnSlots":0},"@_callOptionalReturn_737":{"entryPoint":6537,"id":737,"parameterSlots":2,"returnSlots":0},"@_checkOwner_84":{"entryPoint":5941,"id":84,"parameterSlots":0,"returnSlots":0},"@_claimToken_1787":{"entryPoint":5325,"id":1787,"parameterSlots":3,"returnSlots":0},"@_msgSender_791":{"entryPoint":6529,"id":791,"parameterSlots":0,"returnSlots":1},"@_nonReentrantAfter_866":{"entryPoint":5932,"id":866,"parameterSlots":0,"returnSlots":0},"@_nonReentrantBefore_858":{"entryPoint":5255,"id":858,"parameterSlots":0,"returnSlots":0},"@_transferOwnership_146":{"entryPoint":6203,"id":146,"parameterSlots":1,"returnSlots":0},"@batchClaimFromMultiple_1711":{"entryPoint":2796,"id":1711,"parameterSlots":6,"returnSlots":0},"@batchClaimTokens_1619":{"entryPoint":1309,"id":1619,"parameterSlots":5,"returnSlots":0},"@checkAllowances_1841":{"entryPoint":3534,"id":1841,"parameterSlots":3,"returnSlots":1},"@checkBalances_1891":{"entryPoint":2175,"id":1891,"parameterSlots":3,"returnSlots":1},"@claimToken_1518":{"entryPoint":891,"id":1518,"parameterSlots":3,"returnSlots":0},"@emergencyWithdrawETH_1957":{"entryPoint":4417,"id":1957,"parameterSlots":0,"returnSlots":0},"@emergencyWithdraw_1929":{"entryPoint":4166,"id":1929,"parameterSlots":1,"returnSlots":0},"@operators_1269":{"entryPoint":1277,"id":1269,"parameterSlots":0,"returnSlots":0},"@owner_67":{"entryPoint":4548,"id":67,"parameterSlots":0,"returnSlots":1},"@recipient_1265":{"entryPoint":4128,"id":1265,"parameterSlots":0,"returnSlots":0},"@renounceOwnership_98":{"entryPoint":4397,"id":98,"parameterSlots":0,"returnSlots":0},"@safeTransferFrom_387":{"entryPoint":6399,"id":387,"parameterSlots":4,"returnSlots":0},"@safeTransfer_360":{"entryPoint":6076,"id":360,"parameterSlots":3,"returnSlots":0},"@setOperator_1428":{"entryPoint":3849,"id":1428,"parameterSlots":2,"returnSlots":0},"@setRecipientAndAuthorizeOperator_1480":{"entryPoint":4589,"id":1480,"parameterSlots":2,"returnSlots":0},"@setRecipient_1396":{"entryPoint":2488,"id":1396,"parameterSlots":1,"returnSlots":0},"@transferOwnership_126":{"entryPoint":5121,"id":126,"parameterSlots":1,"returnSlots":0},"abi_decode_t_address":{"entryPoint":6782,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_array$_t_address_$dyn_calldata_ptr":{"entryPoint":7054,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_t_array$_t_uint256_$dyn_calldata_ptr":{"entryPoint":7140,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_t_bool":{"entryPoint":7898,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_uint256":{"entryPoint":6836,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_uint256_fromMemory":{"entryPoint":8410,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_address":{"entryPoint":6940,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_addresst_address":{"entryPoint":8025,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_addresst_addresst_uint256":{"entryPoint":6857,"id":null,"parameterSlots":2,"returnSlots":3},"abi_decode_tuple_t_addresst_bool":{"entryPoint":7919,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_array$_t_address_$dyn_calldata_ptrt_address":{"entryPoint":7375,"id":null,"parameterSlots":2,"returnSlots":3},"abi_decode_tuple_t_array$_t_address_$dyn_calldata_ptrt_addresst_array$_t_uint256_$dyn_calldata_ptr":{"entryPoint":7226,"id":null,"parameterSlots":2,"returnSlots":5},"abi_decode_tuple_t_array$_t_address_$dyn_calldata_ptrt_array$_t_address_$dyn_calldata_ptrt_array$_t_uint256_$dyn_calldata_ptr":{"entryPoint":7695,"id":null,"parameterSlots":2,"returnSlots":6},"abi_decode_tuple_t_uint256_fromMemory":{"entryPoint":8431,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encodeUpdatedPos_t_uint256_to_t_uint256":{"entryPoint":7530,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_address_to_t_address_fromStack":{"entryPoint":7983,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_array$_t_uint256_$dyn_memory_ptr_to_t_array$_t_uint256_$dyn_memory_ptr_fromStack":{"entryPoint":7567,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_bool_to_t_bool_fromStack":{"entryPoint":6997,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_uint256_to_t_uint256":{"entryPoint":7515,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_uint256_to_t_uint256_fromStack":{"entryPoint":8307,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":7998,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed":{"entryPoint":8476,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_address_t_address_t_uint256__to_t_address_t_address_t_uint256__fromStack_reversed":{"entryPoint":8640,"id":null,"parameterSlots":4,"returnSlots":1},"abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed":{"entryPoint":8599,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_address_t_uint256_t_uint256__to_t_address_t_uint256_t_uint256__fromStack_reversed":{"entryPoint":8517,"id":null,"parameterSlots":4,"returnSlots":1},"abi_encode_tuple_t_array$_t_uint256_$dyn_memory_ptr__to_t_array$_t_uint256_$dyn_memory_ptr__fromStack_reversed":{"entryPoint":7661,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed":{"entryPoint":7012,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed":{"entryPoint":8572,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed":{"entryPoint":8322,"id":null,"parameterSlots":3,"returnSlots":1},"allocate_unbounded":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":1},"array_dataslot_t_array$_t_uint256_$dyn_memory_ptr":{"entryPoint":7499,"id":null,"parameterSlots":1,"returnSlots":1},"array_length_t_array$_t_uint256_$dyn_memory_ptr":{"entryPoint":7471,"id":null,"parameterSlots":1,"returnSlots":1},"array_nextElement_t_array$_t_uint256_$dyn_memory_ptr":{"entryPoint":7554,"id":null,"parameterSlots":1,"returnSlots":1},"array_storeLengthForEncoding_t_array$_t_uint256_$dyn_memory_ptr_fromStack":{"entryPoint":7482,"id":null,"parameterSlots":2,"returnSlots":1},"checked_add_t_uint256":{"entryPoint":8183,"id":null,"parameterSlots":2,"returnSlots":1},"cleanup_t_address":{"entryPoint":6741,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_bool":{"entryPoint":6985,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint160":{"entryPoint":6709,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint256":{"entryPoint":6803,"id":null,"parameterSlots":1,"returnSlots":1},"increment_t_uint256":{"entryPoint":8235,"id":null,"parameterSlots":1,"returnSlots":1},"panic_error_0x11":{"entryPoint":8136,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x32":{"entryPoint":8089,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x41":{"entryPoint":8363,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490":{"entryPoint":7044,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d":{"entryPoint":7039,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef":{"entryPoint":7049,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db":{"entryPoint":6704,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b":{"entryPoint":6699,"id":null,"parameterSlots":0,"returnSlots":0},"validator_revert_t_address":{"entryPoint":6759,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_bool":{"entryPoint":7875,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_uint256":{"entryPoint":6813,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:14584:11","statements":[{"body":{"nodeType":"YulBlock","src":"47:35:11","statements":[{"nodeType":"YulAssignment","src":"57:19:11","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"73:2:11","type":"","value":"64"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"67:5:11"},"nodeType":"YulFunctionCall","src":"67:9:11"},"variableNames":[{"name":"memPtr","nodeType":"YulIdentifier","src":"57:6:11"}]}]},"name":"allocate_unbounded","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"memPtr","nodeType":"YulTypedName","src":"40:6:11","type":""}],"src":"7:75:11"},{"body":{"nodeType":"YulBlock","src":"177:28:11","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"194:1:11","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"197:1:11","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"187:6:11"},"nodeType":"YulFunctionCall","src":"187:12:11"},"nodeType":"YulExpressionStatement","src":"187:12:11"}]},"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nodeType":"YulFunctionDefinition","src":"88:117:11"},{"body":{"nodeType":"YulBlock","src":"300:28:11","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"317:1:11","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"320:1:11","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"310:6:11"},"nodeType":"YulFunctionCall","src":"310:12:11"},"nodeType":"YulExpressionStatement","src":"310:12:11"}]},"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nodeType":"YulFunctionDefinition","src":"211:117:11"},{"body":{"nodeType":"YulBlock","src":"379:81:11","statements":[{"nodeType":"YulAssignment","src":"389:65:11","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"404:5:11"},{"kind":"number","nodeType":"YulLiteral","src":"411:42:11","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"400:3:11"},"nodeType":"YulFunctionCall","src":"400:54:11"},"variableNames":[{"name":"cleaned","nodeType":"YulIdentifier","src":"389:7:11"}]}]},"name":"cleanup_t_uint160","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"361:5:11","type":""}],"returnVariables":[{"name":"cleaned","nodeType":"YulTypedName","src":"371:7:11","type":""}],"src":"334:126:11"},{"body":{"nodeType":"YulBlock","src":"511:51:11","statements":[{"nodeType":"YulAssignment","src":"521:35:11","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"550:5:11"}],"functionName":{"name":"cleanup_t_uint160","nodeType":"YulIdentifier","src":"532:17:11"},"nodeType":"YulFunctionCall","src":"532:24:11"},"variableNames":[{"name":"cleaned","nodeType":"YulIdentifier","src":"521:7:11"}]}]},"name":"cleanup_t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"493:5:11","type":""}],"returnVariables":[{"name":"cleaned","nodeType":"YulTypedName","src":"503:7:11","type":""}],"src":"466:96:11"},{"body":{"nodeType":"YulBlock","src":"611:79:11","statements":[{"body":{"nodeType":"YulBlock","src":"668:16:11","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"677:1:11","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"680:1:11","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"670:6:11"},"nodeType":"YulFunctionCall","src":"670:12:11"},"nodeType":"YulExpressionStatement","src":"670:12:11"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"634:5:11"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"659:5:11"}],"functionName":{"name":"cleanup_t_address","nodeType":"YulIdentifier","src":"641:17:11"},"nodeType":"YulFunctionCall","src":"641:24:11"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"631:2:11"},"nodeType":"YulFunctionCall","src":"631:35:11"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"624:6:11"},"nodeType":"YulFunctionCall","src":"624:43:11"},"nodeType":"YulIf","src":"621:63:11"}]},"name":"validator_revert_t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"604:5:11","type":""}],"src":"568:122:11"},{"body":{"nodeType":"YulBlock","src":"748:87:11","statements":[{"nodeType":"YulAssignment","src":"758:29:11","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"780:6:11"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"767:12:11"},"nodeType":"YulFunctionCall","src":"767:20:11"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"758:5:11"}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"823:5:11"}],"functionName":{"name":"validator_revert_t_address","nodeType":"YulIdentifier","src":"796:26:11"},"nodeType":"YulFunctionCall","src":"796:33:11"},"nodeType":"YulExpressionStatement","src":"796:33:11"}]},"name":"abi_decode_t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"726:6:11","type":""},{"name":"end","nodeType":"YulTypedName","src":"734:3:11","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"742:5:11","type":""}],"src":"696:139:11"},{"body":{"nodeType":"YulBlock","src":"886:32:11","statements":[{"nodeType":"YulAssignment","src":"896:16:11","value":{"name":"value","nodeType":"YulIdentifier","src":"907:5:11"},"variableNames":[{"name":"cleaned","nodeType":"YulIdentifier","src":"896:7:11"}]}]},"name":"cleanup_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"868:5:11","type":""}],"returnVariables":[{"name":"cleaned","nodeType":"YulTypedName","src":"878:7:11","type":""}],"src":"841:77:11"},{"body":{"nodeType":"YulBlock","src":"967:79:11","statements":[{"body":{"nodeType":"YulBlock","src":"1024:16:11","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1033:1:11","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1036:1:11","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1026:6:11"},"nodeType":"YulFunctionCall","src":"1026:12:11"},"nodeType":"YulExpressionStatement","src":"1026:12:11"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"990:5:11"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1015:5:11"}],"functionName":{"name":"cleanup_t_uint256","nodeType":"YulIdentifier","src":"997:17:11"},"nodeType":"YulFunctionCall","src":"997:24:11"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"987:2:11"},"nodeType":"YulFunctionCall","src":"987:35:11"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"980:6:11"},"nodeType":"YulFunctionCall","src":"980:43:11"},"nodeType":"YulIf","src":"977:63:11"}]},"name":"validator_revert_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"960:5:11","type":""}],"src":"924:122:11"},{"body":{"nodeType":"YulBlock","src":"1104:87:11","statements":[{"nodeType":"YulAssignment","src":"1114:29:11","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1136:6:11"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1123:12:11"},"nodeType":"YulFunctionCall","src":"1123:20:11"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"1114:5:11"}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1179:5:11"}],"functionName":{"name":"validator_revert_t_uint256","nodeType":"YulIdentifier","src":"1152:26:11"},"nodeType":"YulFunctionCall","src":"1152:33:11"},"nodeType":"YulExpressionStatement","src":"1152:33:11"}]},"name":"abi_decode_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"1082:6:11","type":""},{"name":"end","nodeType":"YulTypedName","src":"1090:3:11","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"1098:5:11","type":""}],"src":"1052:139:11"},{"body":{"nodeType":"YulBlock","src":"1297:519:11","statements":[{"body":{"nodeType":"YulBlock","src":"1343:83:11","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nodeType":"YulIdentifier","src":"1345:77:11"},"nodeType":"YulFunctionCall","src":"1345:79:11"},"nodeType":"YulExpressionStatement","src":"1345:79:11"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1318:7:11"},{"name":"headStart","nodeType":"YulIdentifier","src":"1327:9:11"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1314:3:11"},"nodeType":"YulFunctionCall","src":"1314:23:11"},{"kind":"number","nodeType":"YulLiteral","src":"1339:2:11","type":"","value":"96"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1310:3:11"},"nodeType":"YulFunctionCall","src":"1310:32:11"},"nodeType":"YulIf","src":"1307:119:11"},{"nodeType":"YulBlock","src":"1436:117:11","statements":[{"nodeType":"YulVariableDeclaration","src":"1451:15:11","value":{"kind":"number","nodeType":"YulLiteral","src":"1465:1:11","type":"","value":"0"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"1455:6:11","type":""}]},{"nodeType":"YulAssignment","src":"1480:63:11","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1515:9:11"},{"name":"offset","nodeType":"YulIdentifier","src":"1526:6:11"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1511:3:11"},"nodeType":"YulFunctionCall","src":"1511:22:11"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"1535:7:11"}],"functionName":{"name":"abi_decode_t_address","nodeType":"YulIdentifier","src":"1490:20:11"},"nodeType":"YulFunctionCall","src":"1490:53:11"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1480:6:11"}]}]},{"nodeType":"YulBlock","src":"1563:118:11","statements":[{"nodeType":"YulVariableDeclaration","src":"1578:16:11","value":{"kind":"number","nodeType":"YulLiteral","src":"1592:2:11","type":"","value":"32"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"1582:6:11","type":""}]},{"nodeType":"YulAssignment","src":"1608:63:11","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1643:9:11"},{"name":"offset","nodeType":"YulIdentifier","src":"1654:6:11"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1639:3:11"},"nodeType":"YulFunctionCall","src":"1639:22:11"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"1663:7:11"}],"functionName":{"name":"abi_decode_t_address","nodeType":"YulIdentifier","src":"1618:20:11"},"nodeType":"YulFunctionCall","src":"1618:53:11"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"1608:6:11"}]}]},{"nodeType":"YulBlock","src":"1691:118:11","statements":[{"nodeType":"YulVariableDeclaration","src":"1706:16:11","value":{"kind":"number","nodeType":"YulLiteral","src":"1720:2:11","type":"","value":"64"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"1710:6:11","type":""}]},{"nodeType":"YulAssignment","src":"1736:63:11","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1771:9:11"},{"name":"offset","nodeType":"YulIdentifier","src":"1782:6:11"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1767:3:11"},"nodeType":"YulFunctionCall","src":"1767:22:11"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"1791:7:11"}],"functionName":{"name":"abi_decode_t_uint256","nodeType":"YulIdentifier","src":"1746:20:11"},"nodeType":"YulFunctionCall","src":"1746:53:11"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"1736:6:11"}]}]}]},"name":"abi_decode_tuple_t_addresst_addresst_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1251:9:11","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1262:7:11","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1274:6:11","type":""},{"name":"value1","nodeType":"YulTypedName","src":"1282:6:11","type":""},{"name":"value2","nodeType":"YulTypedName","src":"1290:6:11","type":""}],"src":"1197:619:11"},{"body":{"nodeType":"YulBlock","src":"1888:263:11","statements":[{"body":{"nodeType":"YulBlock","src":"1934:83:11","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nodeType":"YulIdentifier","src":"1936:77:11"},"nodeType":"YulFunctionCall","src":"1936:79:11"},"nodeType":"YulExpressionStatement","src":"1936:79:11"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1909:7:11"},{"name":"headStart","nodeType":"YulIdentifier","src":"1918:9:11"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1905:3:11"},"nodeType":"YulFunctionCall","src":"1905:23:11"},{"kind":"number","nodeType":"YulLiteral","src":"1930:2:11","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1901:3:11"},"nodeType":"YulFunctionCall","src":"1901:32:11"},"nodeType":"YulIf","src":"1898:119:11"},{"nodeType":"YulBlock","src":"2027:117:11","statements":[{"nodeType":"YulVariableDeclaration","src":"2042:15:11","value":{"kind":"number","nodeType":"YulLiteral","src":"2056:1:11","type":"","value":"0"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"2046:6:11","type":""}]},{"nodeType":"YulAssignment","src":"2071:63:11","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2106:9:11"},{"name":"offset","nodeType":"YulIdentifier","src":"2117:6:11"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2102:3:11"},"nodeType":"YulFunctionCall","src":"2102:22:11"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"2126:7:11"}],"functionName":{"name":"abi_decode_t_address","nodeType":"YulIdentifier","src":"2081:20:11"},"nodeType":"YulFunctionCall","src":"2081:53:11"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"2071:6:11"}]}]}]},"name":"abi_decode_tuple_t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1858:9:11","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1869:7:11","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1881:6:11","type":""}],"src":"1822:329:11"},{"body":{"nodeType":"YulBlock","src":"2199:48:11","statements":[{"nodeType":"YulAssignment","src":"2209:32:11","value":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"2234:5:11"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"2227:6:11"},"nodeType":"YulFunctionCall","src":"2227:13:11"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"2220:6:11"},"nodeType":"YulFunctionCall","src":"2220:21:11"},"variableNames":[{"name":"cleaned","nodeType":"YulIdentifier","src":"2209:7:11"}]}]},"name":"cleanup_t_bool","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"2181:5:11","type":""}],"returnVariables":[{"name":"cleaned","nodeType":"YulTypedName","src":"2191:7:11","type":""}],"src":"2157:90:11"},{"body":{"nodeType":"YulBlock","src":"2312:50:11","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"2329:3:11"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"2349:5:11"}],"functionName":{"name":"cleanup_t_bool","nodeType":"YulIdentifier","src":"2334:14:11"},"nodeType":"YulFunctionCall","src":"2334:21:11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2322:6:11"},"nodeType":"YulFunctionCall","src":"2322:34:11"},"nodeType":"YulExpressionStatement","src":"2322:34:11"}]},"name":"abi_encode_t_bool_to_t_bool_fromStack","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"2300:5:11","type":""},{"name":"pos","nodeType":"YulTypedName","src":"2307:3:11","type":""}],"src":"2253:109:11"},{"body":{"nodeType":"YulBlock","src":"2460:118:11","statements":[{"nodeType":"YulAssignment","src":"2470:26:11","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2482:9:11"},{"kind":"number","nodeType":"YulLiteral","src":"2493:2:11","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2478:3:11"},"nodeType":"YulFunctionCall","src":"2478:18:11"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"2470:4:11"}]},{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"2544:6:11"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2557:9:11"},{"kind":"number","nodeType":"YulLiteral","src":"2568:1:11","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2553:3:11"},"nodeType":"YulFunctionCall","src":"2553:17:11"}],"functionName":{"name":"abi_encode_t_bool_to_t_bool_fromStack","nodeType":"YulIdentifier","src":"2506:37:11"},"nodeType":"YulFunctionCall","src":"2506:65:11"},"nodeType":"YulExpressionStatement","src":"2506:65:11"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2432:9:11","type":""},{"name":"value0","nodeType":"YulTypedName","src":"2444:6:11","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"2455:4:11","type":""}],"src":"2368:210:11"},{"body":{"nodeType":"YulBlock","src":"2673:28:11","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2690:1:11","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2693:1:11","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2683:6:11"},"nodeType":"YulFunctionCall","src":"2683:12:11"},"nodeType":"YulExpressionStatement","src":"2683:12:11"}]},"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nodeType":"YulFunctionDefinition","src":"2584:117:11"},{"body":{"nodeType":"YulBlock","src":"2796:28:11","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2813:1:11","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2816:1:11","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2806:6:11"},"nodeType":"YulFunctionCall","src":"2806:12:11"},"nodeType":"YulExpressionStatement","src":"2806:12:11"}]},"name":"revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490","nodeType":"YulFunctionDefinition","src":"2707:117:11"},{"body":{"nodeType":"YulBlock","src":"2919:28:11","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2936:1:11","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2939:1:11","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2929:6:11"},"nodeType":"YulFunctionCall","src":"2929:12:11"},"nodeType":"YulExpressionStatement","src":"2929:12:11"}]},"name":"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef","nodeType":"YulFunctionDefinition","src":"2830:117:11"},{"body":{"nodeType":"YulBlock","src":"3060:478:11","statements":[{"body":{"nodeType":"YulBlock","src":"3109:83:11","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nodeType":"YulIdentifier","src":"3111:77:11"},"nodeType":"YulFunctionCall","src":"3111:79:11"},"nodeType":"YulExpressionStatement","src":"3111:79:11"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"3088:6:11"},{"kind":"number","nodeType":"YulLiteral","src":"3096:4:11","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3084:3:11"},"nodeType":"YulFunctionCall","src":"3084:17:11"},{"name":"end","nodeType":"YulIdentifier","src":"3103:3:11"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"3080:3:11"},"nodeType":"YulFunctionCall","src":"3080:27:11"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"3073:6:11"},"nodeType":"YulFunctionCall","src":"3073:35:11"},"nodeType":"YulIf","src":"3070:122:11"},{"nodeType":"YulAssignment","src":"3201:30:11","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"3224:6:11"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3211:12:11"},"nodeType":"YulFunctionCall","src":"3211:20:11"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"3201:6:11"}]},{"body":{"nodeType":"YulBlock","src":"3274:83:11","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490","nodeType":"YulIdentifier","src":"3276:77:11"},"nodeType":"YulFunctionCall","src":"3276:79:11"},"nodeType":"YulExpressionStatement","src":"3276:79:11"}]},"condition":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"3246:6:11"},{"kind":"number","nodeType":"YulLiteral","src":"3254:18:11","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"3243:2:11"},"nodeType":"YulFunctionCall","src":"3243:30:11"},"nodeType":"YulIf","src":"3240:117:11"},{"nodeType":"YulAssignment","src":"3366:29:11","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"3382:6:11"},{"kind":"number","nodeType":"YulLiteral","src":"3390:4:11","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3378:3:11"},"nodeType":"YulFunctionCall","src":"3378:17:11"},"variableNames":[{"name":"arrayPos","nodeType":"YulIdentifier","src":"3366:8:11"}]},{"body":{"nodeType":"YulBlock","src":"3449:83:11","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef","nodeType":"YulIdentifier","src":"3451:77:11"},"nodeType":"YulFunctionCall","src":"3451:79:11"},"nodeType":"YulExpressionStatement","src":"3451:79:11"}]},"condition":{"arguments":[{"arguments":[{"name":"arrayPos","nodeType":"YulIdentifier","src":"3414:8:11"},{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"3428:6:11"},{"kind":"number","nodeType":"YulLiteral","src":"3436:4:11","type":"","value":"0x20"}],"functionName":{"name":"mul","nodeType":"YulIdentifier","src":"3424:3:11"},"nodeType":"YulFunctionCall","src":"3424:17:11"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3410:3:11"},"nodeType":"YulFunctionCall","src":"3410:32:11"},{"name":"end","nodeType":"YulIdentifier","src":"3444:3:11"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"3407:2:11"},"nodeType":"YulFunctionCall","src":"3407:41:11"},"nodeType":"YulIf","src":"3404:128:11"}]},"name":"abi_decode_t_array$_t_address_$dyn_calldata_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"3027:6:11","type":""},{"name":"end","nodeType":"YulTypedName","src":"3035:3:11","type":""}],"returnVariables":[{"name":"arrayPos","nodeType":"YulTypedName","src":"3043:8:11","type":""},{"name":"length","nodeType":"YulTypedName","src":"3053:6:11","type":""}],"src":"2970:568:11"},{"body":{"nodeType":"YulBlock","src":"3651:478:11","statements":[{"body":{"nodeType":"YulBlock","src":"3700:83:11","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nodeType":"YulIdentifier","src":"3702:77:11"},"nodeType":"YulFunctionCall","src":"3702:79:11"},"nodeType":"YulExpressionStatement","src":"3702:79:11"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"3679:6:11"},{"kind":"number","nodeType":"YulLiteral","src":"3687:4:11","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3675:3:11"},"nodeType":"YulFunctionCall","src":"3675:17:11"},{"name":"end","nodeType":"YulIdentifier","src":"3694:3:11"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"3671:3:11"},"nodeType":"YulFunctionCall","src":"3671:27:11"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"3664:6:11"},"nodeType":"YulFunctionCall","src":"3664:35:11"},"nodeType":"YulIf","src":"3661:122:11"},{"nodeType":"YulAssignment","src":"3792:30:11","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"3815:6:11"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3802:12:11"},"nodeType":"YulFunctionCall","src":"3802:20:11"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"3792:6:11"}]},{"body":{"nodeType":"YulBlock","src":"3865:83:11","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490","nodeType":"YulIdentifier","src":"3867:77:11"},"nodeType":"YulFunctionCall","src":"3867:79:11"},"nodeType":"YulExpressionStatement","src":"3867:79:11"}]},"condition":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"3837:6:11"},{"kind":"number","nodeType":"YulLiteral","src":"3845:18:11","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"3834:2:11"},"nodeType":"YulFunctionCall","src":"3834:30:11"},"nodeType":"YulIf","src":"3831:117:11"},{"nodeType":"YulAssignment","src":"3957:29:11","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"3973:6:11"},{"kind":"number","nodeType":"YulLiteral","src":"3981:4:11","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3969:3:11"},"nodeType":"YulFunctionCall","src":"3969:17:11"},"variableNames":[{"name":"arrayPos","nodeType":"YulIdentifier","src":"3957:8:11"}]},{"body":{"nodeType":"YulBlock","src":"4040:83:11","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef","nodeType":"YulIdentifier","src":"4042:77:11"},"nodeType":"YulFunctionCall","src":"4042:79:11"},"nodeType":"YulExpressionStatement","src":"4042:79:11"}]},"condition":{"arguments":[{"arguments":[{"name":"arrayPos","nodeType":"YulIdentifier","src":"4005:8:11"},{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"4019:6:11"},{"kind":"number","nodeType":"YulLiteral","src":"4027:4:11","type":"","value":"0x20"}],"functionName":{"name":"mul","nodeType":"YulIdentifier","src":"4015:3:11"},"nodeType":"YulFunctionCall","src":"4015:17:11"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4001:3:11"},"nodeType":"YulFunctionCall","src":"4001:32:11"},{"name":"end","nodeType":"YulIdentifier","src":"4035:3:11"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"3998:2:11"},"nodeType":"YulFunctionCall","src":"3998:41:11"},"nodeType":"YulIf","src":"3995:128:11"}]},"name":"abi_decode_t_array$_t_uint256_$dyn_calldata_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"3618:6:11","type":""},{"name":"end","nodeType":"YulTypedName","src":"3626:3:11","type":""}],"returnVariables":[{"name":"arrayPos","nodeType":"YulTypedName","src":"3634:8:11","type":""},{"name":"length","nodeType":"YulTypedName","src":"3644:6:11","type":""}],"src":"3561:568:11"},{"body":{"nodeType":"YulBlock","src":"4305:909:11","statements":[{"body":{"nodeType":"YulBlock","src":"4351:83:11","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nodeType":"YulIdentifier","src":"4353:77:11"},"nodeType":"YulFunctionCall","src":"4353:79:11"},"nodeType":"YulExpressionStatement","src":"4353:79:11"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"4326:7:11"},{"name":"headStart","nodeType":"YulIdentifier","src":"4335:9:11"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"4322:3:11"},"nodeType":"YulFunctionCall","src":"4322:23:11"},{"kind":"number","nodeType":"YulLiteral","src":"4347:2:11","type":"","value":"96"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"4318:3:11"},"nodeType":"YulFunctionCall","src":"4318:32:11"},"nodeType":"YulIf","src":"4315:119:11"},{"nodeType":"YulBlock","src":"4444:312:11","statements":[{"nodeType":"YulVariableDeclaration","src":"4459:45:11","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4490:9:11"},{"kind":"number","nodeType":"YulLiteral","src":"4501:1:11","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4486:3:11"},"nodeType":"YulFunctionCall","src":"4486:17:11"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4473:12:11"},"nodeType":"YulFunctionCall","src":"4473:31:11"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"4463:6:11","type":""}]},{"body":{"nodeType":"YulBlock","src":"4551:83:11","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nodeType":"YulIdentifier","src":"4553:77:11"},"nodeType":"YulFunctionCall","src":"4553:79:11"},"nodeType":"YulExpressionStatement","src":"4553:79:11"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"4523:6:11"},{"kind":"number","nodeType":"YulLiteral","src":"4531:18:11","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"4520:2:11"},"nodeType":"YulFunctionCall","src":"4520:30:11"},"nodeType":"YulIf","src":"4517:117:11"},{"nodeType":"YulAssignment","src":"4648:98:11","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4718:9:11"},{"name":"offset","nodeType":"YulIdentifier","src":"4729:6:11"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4714:3:11"},"nodeType":"YulFunctionCall","src":"4714:22:11"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"4738:7:11"}],"functionName":{"name":"abi_decode_t_array$_t_address_$dyn_calldata_ptr","nodeType":"YulIdentifier","src":"4666:47:11"},"nodeType":"YulFunctionCall","src":"4666:80:11"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"4648:6:11"},{"name":"value1","nodeType":"YulIdentifier","src":"4656:6:11"}]}]},{"nodeType":"YulBlock","src":"4766:118:11","statements":[{"nodeType":"YulVariableDeclaration","src":"4781:16:11","value":{"kind":"number","nodeType":"YulLiteral","src":"4795:2:11","type":"","value":"32"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"4785:6:11","type":""}]},{"nodeType":"YulAssignment","src":"4811:63:11","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4846:9:11"},{"name":"offset","nodeType":"YulIdentifier","src":"4857:6:11"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4842:3:11"},"nodeType":"YulFunctionCall","src":"4842:22:11"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"4866:7:11"}],"functionName":{"name":"abi_decode_t_address","nodeType":"YulIdentifier","src":"4821:20:11"},"nodeType":"YulFunctionCall","src":"4821:53:11"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"4811:6:11"}]}]},{"nodeType":"YulBlock","src":"4894:313:11","statements":[{"nodeType":"YulVariableDeclaration","src":"4909:46:11","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4940:9:11"},{"kind":"number","nodeType":"YulLiteral","src":"4951:2:11","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4936:3:11"},"nodeType":"YulFunctionCall","src":"4936:18:11"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4923:12:11"},"nodeType":"YulFunctionCall","src":"4923:32:11"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"4913:6:11","type":""}]},{"body":{"nodeType":"YulBlock","src":"5002:83:11","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nodeType":"YulIdentifier","src":"5004:77:11"},"nodeType":"YulFunctionCall","src":"5004:79:11"},"nodeType":"YulExpressionStatement","src":"5004:79:11"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"4974:6:11"},{"kind":"number","nodeType":"YulLiteral","src":"4982:18:11","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"4971:2:11"},"nodeType":"YulFunctionCall","src":"4971:30:11"},"nodeType":"YulIf","src":"4968:117:11"},{"nodeType":"YulAssignment","src":"5099:98:11","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5169:9:11"},{"name":"offset","nodeType":"YulIdentifier","src":"5180:6:11"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5165:3:11"},"nodeType":"YulFunctionCall","src":"5165:22:11"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"5189:7:11"}],"functionName":{"name":"abi_decode_t_array$_t_uint256_$dyn_calldata_ptr","nodeType":"YulIdentifier","src":"5117:47:11"},"nodeType":"YulFunctionCall","src":"5117:80:11"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"5099:6:11"},{"name":"value4","nodeType":"YulIdentifier","src":"5107:6:11"}]}]}]},"name":"abi_decode_tuple_t_array$_t_address_$dyn_calldata_ptrt_addresst_array$_t_uint256_$dyn_calldata_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4243:9:11","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"4254:7:11","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"4266:6:11","type":""},{"name":"value1","nodeType":"YulTypedName","src":"4274:6:11","type":""},{"name":"value2","nodeType":"YulTypedName","src":"4282:6:11","type":""},{"name":"value3","nodeType":"YulTypedName","src":"4290:6:11","type":""},{"name":"value4","nodeType":"YulTypedName","src":"4298:6:11","type":""}],"src":"4135:1079:11"},{"body":{"nodeType":"YulBlock","src":"5338:586:11","statements":[{"body":{"nodeType":"YulBlock","src":"5384:83:11","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nodeType":"YulIdentifier","src":"5386:77:11"},"nodeType":"YulFunctionCall","src":"5386:79:11"},"nodeType":"YulExpressionStatement","src":"5386:79:11"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"5359:7:11"},{"name":"headStart","nodeType":"YulIdentifier","src":"5368:9:11"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"5355:3:11"},"nodeType":"YulFunctionCall","src":"5355:23:11"},{"kind":"number","nodeType":"YulLiteral","src":"5380:2:11","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"5351:3:11"},"nodeType":"YulFunctionCall","src":"5351:32:11"},"nodeType":"YulIf","src":"5348:119:11"},{"nodeType":"YulBlock","src":"5477:312:11","statements":[{"nodeType":"YulVariableDeclaration","src":"5492:45:11","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5523:9:11"},{"kind":"number","nodeType":"YulLiteral","src":"5534:1:11","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5519:3:11"},"nodeType":"YulFunctionCall","src":"5519:17:11"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"5506:12:11"},"nodeType":"YulFunctionCall","src":"5506:31:11"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"5496:6:11","type":""}]},{"body":{"nodeType":"YulBlock","src":"5584:83:11","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nodeType":"YulIdentifier","src":"5586:77:11"},"nodeType":"YulFunctionCall","src":"5586:79:11"},"nodeType":"YulExpressionStatement","src":"5586:79:11"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"5556:6:11"},{"kind":"number","nodeType":"YulLiteral","src":"5564:18:11","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"5553:2:11"},"nodeType":"YulFunctionCall","src":"5553:30:11"},"nodeType":"YulIf","src":"5550:117:11"},{"nodeType":"YulAssignment","src":"5681:98:11","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5751:9:11"},{"name":"offset","nodeType":"YulIdentifier","src":"5762:6:11"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5747:3:11"},"nodeType":"YulFunctionCall","src":"5747:22:11"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"5771:7:11"}],"functionName":{"name":"abi_decode_t_array$_t_address_$dyn_calldata_ptr","nodeType":"YulIdentifier","src":"5699:47:11"},"nodeType":"YulFunctionCall","src":"5699:80:11"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"5681:6:11"},{"name":"value1","nodeType":"YulIdentifier","src":"5689:6:11"}]}]},{"nodeType":"YulBlock","src":"5799:118:11","statements":[{"nodeType":"YulVariableDeclaration","src":"5814:16:11","value":{"kind":"number","nodeType":"YulLiteral","src":"5828:2:11","type":"","value":"32"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"5818:6:11","type":""}]},{"nodeType":"YulAssignment","src":"5844:63:11","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5879:9:11"},{"name":"offset","nodeType":"YulIdentifier","src":"5890:6:11"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5875:3:11"},"nodeType":"YulFunctionCall","src":"5875:22:11"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"5899:7:11"}],"functionName":{"name":"abi_decode_t_address","nodeType":"YulIdentifier","src":"5854:20:11"},"nodeType":"YulFunctionCall","src":"5854:53:11"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"5844:6:11"}]}]}]},"name":"abi_decode_tuple_t_array$_t_address_$dyn_calldata_ptrt_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5292:9:11","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"5303:7:11","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"5315:6:11","type":""},{"name":"value1","nodeType":"YulTypedName","src":"5323:6:11","type":""},{"name":"value2","nodeType":"YulTypedName","src":"5331:6:11","type":""}],"src":"5220:704:11"},{"body":{"nodeType":"YulBlock","src":"6004:40:11","statements":[{"nodeType":"YulAssignment","src":"6015:22:11","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"6031:5:11"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"6025:5:11"},"nodeType":"YulFunctionCall","src":"6025:12:11"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"6015:6:11"}]}]},"name":"array_length_t_array$_t_uint256_$dyn_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"5987:5:11","type":""}],"returnVariables":[{"name":"length","nodeType":"YulTypedName","src":"5997:6:11","type":""}],"src":"5930:114:11"},{"body":{"nodeType":"YulBlock","src":"6161:73:11","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"6178:3:11"},{"name":"length","nodeType":"YulIdentifier","src":"6183:6:11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6171:6:11"},"nodeType":"YulFunctionCall","src":"6171:19:11"},"nodeType":"YulExpressionStatement","src":"6171:19:11"},{"nodeType":"YulAssignment","src":"6199:29:11","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"6218:3:11"},{"kind":"number","nodeType":"YulLiteral","src":"6223:4:11","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6214:3:11"},"nodeType":"YulFunctionCall","src":"6214:14:11"},"variableNames":[{"name":"updated_pos","nodeType":"YulIdentifier","src":"6199:11:11"}]}]},"name":"array_storeLengthForEncoding_t_array$_t_uint256_$dyn_memory_ptr_fromStack","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"6133:3:11","type":""},{"name":"length","nodeType":"YulTypedName","src":"6138:6:11","type":""}],"returnVariables":[{"name":"updated_pos","nodeType":"YulTypedName","src":"6149:11:11","type":""}],"src":"6050:184:11"},{"body":{"nodeType":"YulBlock","src":"6312:60:11","statements":[{"nodeType":"YulAssignment","src":"6322:11:11","value":{"name":"ptr","nodeType":"YulIdentifier","src":"6330:3:11"},"variableNames":[{"name":"data","nodeType":"YulIdentifier","src":"6322:4:11"}]},{"nodeType":"YulAssignment","src":"6343:22:11","value":{"arguments":[{"name":"ptr","nodeType":"YulIdentifier","src":"6355:3:11"},{"kind":"number","nodeType":"YulLiteral","src":"6360:4:11","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6351:3:11"},"nodeType":"YulFunctionCall","src":"6351:14:11"},"variableNames":[{"name":"data","nodeType":"YulIdentifier","src":"6343:4:11"}]}]},"name":"array_dataslot_t_array$_t_uint256_$dyn_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"ptr","nodeType":"YulTypedName","src":"6299:3:11","type":""}],"returnVariables":[{"name":"data","nodeType":"YulTypedName","src":"6307:4:11","type":""}],"src":"6240:132:11"},{"body":{"nodeType":"YulBlock","src":"6433:53:11","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"6450:3:11"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"6473:5:11"}],"functionName":{"name":"cleanup_t_uint256","nodeType":"YulIdentifier","src":"6455:17:11"},"nodeType":"YulFunctionCall","src":"6455:24:11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6443:6:11"},"nodeType":"YulFunctionCall","src":"6443:37:11"},"nodeType":"YulExpressionStatement","src":"6443:37:11"}]},"name":"abi_encode_t_uint256_to_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"6421:5:11","type":""},{"name":"pos","nodeType":"YulTypedName","src":"6428:3:11","type":""}],"src":"6378:108:11"},{"body":{"nodeType":"YulBlock","src":"6572:99:11","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"6616:6:11"},{"name":"pos","nodeType":"YulIdentifier","src":"6624:3:11"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256","nodeType":"YulIdentifier","src":"6582:33:11"},"nodeType":"YulFunctionCall","src":"6582:46:11"},"nodeType":"YulExpressionStatement","src":"6582:46:11"},{"nodeType":"YulAssignment","src":"6637:28:11","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"6655:3:11"},{"kind":"number","nodeType":"YulLiteral","src":"6660:4:11","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6651:3:11"},"nodeType":"YulFunctionCall","src":"6651:14:11"},"variableNames":[{"name":"updatedPos","nodeType":"YulIdentifier","src":"6637:10:11"}]}]},"name":"abi_encodeUpdatedPos_t_uint256_to_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"value0","nodeType":"YulTypedName","src":"6545:6:11","type":""},{"name":"pos","nodeType":"YulTypedName","src":"6553:3:11","type":""}],"returnVariables":[{"name":"updatedPos","nodeType":"YulTypedName","src":"6561:10:11","type":""}],"src":"6492:179:11"},{"body":{"nodeType":"YulBlock","src":"6752:38:11","statements":[{"nodeType":"YulAssignment","src":"6762:22:11","value":{"arguments":[{"name":"ptr","nodeType":"YulIdentifier","src":"6774:3:11"},{"kind":"number","nodeType":"YulLiteral","src":"6779:4:11","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6770:3:11"},"nodeType":"YulFunctionCall","src":"6770:14:11"},"variableNames":[{"name":"next","nodeType":"YulIdentifier","src":"6762:4:11"}]}]},"name":"array_nextElement_t_array$_t_uint256_$dyn_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"ptr","nodeType":"YulTypedName","src":"6739:3:11","type":""}],"returnVariables":[{"name":"next","nodeType":"YulTypedName","src":"6747:4:11","type":""}],"src":"6677:113:11"},{"body":{"nodeType":"YulBlock","src":"6950:608:11","statements":[{"nodeType":"YulVariableDeclaration","src":"6960:68:11","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"7022:5:11"}],"functionName":{"name":"array_length_t_array$_t_uint256_$dyn_memory_ptr","nodeType":"YulIdentifier","src":"6974:47:11"},"nodeType":"YulFunctionCall","src":"6974:54:11"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"6964:6:11","type":""}]},{"nodeType":"YulAssignment","src":"7037:93:11","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"7118:3:11"},{"name":"length","nodeType":"YulIdentifier","src":"7123:6:11"}],"functionName":{"name":"array_storeLengthForEncoding_t_array$_t_uint256_$dyn_memory_ptr_fromStack","nodeType":"YulIdentifier","src":"7044:73:11"},"nodeType":"YulFunctionCall","src":"7044:86:11"},"variableNames":[{"name":"pos","nodeType":"YulIdentifier","src":"7037:3:11"}]},{"nodeType":"YulVariableDeclaration","src":"7139:71:11","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"7204:5:11"}],"functionName":{"name":"array_dataslot_t_array$_t_uint256_$dyn_memory_ptr","nodeType":"YulIdentifier","src":"7154:49:11"},"nodeType":"YulFunctionCall","src":"7154:56:11"},"variables":[{"name":"baseRef","nodeType":"YulTypedName","src":"7143:7:11","type":""}]},{"nodeType":"YulVariableDeclaration","src":"7219:21:11","value":{"name":"baseRef","nodeType":"YulIdentifier","src":"7233:7:11"},"variables":[{"name":"srcPtr","nodeType":"YulTypedName","src":"7223:6:11","type":""}]},{"body":{"nodeType":"YulBlock","src":"7309:224:11","statements":[{"nodeType":"YulVariableDeclaration","src":"7323:34:11","value":{"arguments":[{"name":"srcPtr","nodeType":"YulIdentifier","src":"7350:6:11"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"7344:5:11"},"nodeType":"YulFunctionCall","src":"7344:13:11"},"variables":[{"name":"elementValue0","nodeType":"YulTypedName","src":"7327:13:11","type":""}]},{"nodeType":"YulAssignment","src":"7370:70:11","value":{"arguments":[{"name":"elementValue0","nodeType":"YulIdentifier","src":"7421:13:11"},{"name":"pos","nodeType":"YulIdentifier","src":"7436:3:11"}],"functionName":{"name":"abi_encodeUpdatedPos_t_uint256_to_t_uint256","nodeType":"YulIdentifier","src":"7377:43:11"},"nodeType":"YulFunctionCall","src":"7377:63:11"},"variableNames":[{"name":"pos","nodeType":"YulIdentifier","src":"7370:3:11"}]},{"nodeType":"YulAssignment","src":"7453:70:11","value":{"arguments":[{"name":"srcPtr","nodeType":"YulIdentifier","src":"7516:6:11"}],"functionName":{"name":"array_nextElement_t_array$_t_uint256_$dyn_memory_ptr","nodeType":"YulIdentifier","src":"7463:52:11"},"nodeType":"YulFunctionCall","src":"7463:60:11"},"variableNames":[{"name":"srcPtr","nodeType":"YulIdentifier","src":"7453:6:11"}]}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"7271:1:11"},{"name":"length","nodeType":"YulIdentifier","src":"7274:6:11"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"7268:2:11"},"nodeType":"YulFunctionCall","src":"7268:13:11"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"7282:18:11","statements":[{"nodeType":"YulAssignment","src":"7284:14:11","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"7293:1:11"},{"kind":"number","nodeType":"YulLiteral","src":"7296:1:11","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7289:3:11"},"nodeType":"YulFunctionCall","src":"7289:9:11"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"7284:1:11"}]}]},"pre":{"nodeType":"YulBlock","src":"7253:14:11","statements":[{"nodeType":"YulVariableDeclaration","src":"7255:10:11","value":{"kind":"number","nodeType":"YulLiteral","src":"7264:1:11","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"7259:1:11","type":""}]}]},"src":"7249:284:11"},{"nodeType":"YulAssignment","src":"7542:10:11","value":{"name":"pos","nodeType":"YulIdentifier","src":"7549:3:11"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"7542:3:11"}]}]},"name":"abi_encode_t_array$_t_uint256_$dyn_memory_ptr_to_t_array$_t_uint256_$dyn_memory_ptr_fromStack","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"6929:5:11","type":""},{"name":"pos","nodeType":"YulTypedName","src":"6936:3:11","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"6945:3:11","type":""}],"src":"6826:732:11"},{"body":{"nodeType":"YulBlock","src":"7712:225:11","statements":[{"nodeType":"YulAssignment","src":"7722:26:11","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7734:9:11"},{"kind":"number","nodeType":"YulLiteral","src":"7745:2:11","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7730:3:11"},"nodeType":"YulFunctionCall","src":"7730:18:11"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"7722:4:11"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7769:9:11"},{"kind":"number","nodeType":"YulLiteral","src":"7780:1:11","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7765:3:11"},"nodeType":"YulFunctionCall","src":"7765:17:11"},{"arguments":[{"name":"tail","nodeType":"YulIdentifier","src":"7788:4:11"},{"name":"headStart","nodeType":"YulIdentifier","src":"7794:9:11"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"7784:3:11"},"nodeType":"YulFunctionCall","src":"7784:20:11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7758:6:11"},"nodeType":"YulFunctionCall","src":"7758:47:11"},"nodeType":"YulExpressionStatement","src":"7758:47:11"},{"nodeType":"YulAssignment","src":"7814:116:11","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"7916:6:11"},{"name":"tail","nodeType":"YulIdentifier","src":"7925:4:11"}],"functionName":{"name":"abi_encode_t_array$_t_uint256_$dyn_memory_ptr_to_t_array$_t_uint256_$dyn_memory_ptr_fromStack","nodeType":"YulIdentifier","src":"7822:93:11"},"nodeType":"YulFunctionCall","src":"7822:108:11"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"7814:4:11"}]}]},"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":"7684:9:11","type":""},{"name":"value0","nodeType":"YulTypedName","src":"7696:6:11","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"7707:4:11","type":""}],"src":"7564:373:11"},{"body":{"nodeType":"YulBlock","src":"8148:1104:11","statements":[{"body":{"nodeType":"YulBlock","src":"8194:83:11","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nodeType":"YulIdentifier","src":"8196:77:11"},"nodeType":"YulFunctionCall","src":"8196:79:11"},"nodeType":"YulExpressionStatement","src":"8196:79:11"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"8169:7:11"},{"name":"headStart","nodeType":"YulIdentifier","src":"8178:9:11"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"8165:3:11"},"nodeType":"YulFunctionCall","src":"8165:23:11"},{"kind":"number","nodeType":"YulLiteral","src":"8190:2:11","type":"","value":"96"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"8161:3:11"},"nodeType":"YulFunctionCall","src":"8161:32:11"},"nodeType":"YulIf","src":"8158:119:11"},{"nodeType":"YulBlock","src":"8287:312:11","statements":[{"nodeType":"YulVariableDeclaration","src":"8302:45:11","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8333:9:11"},{"kind":"number","nodeType":"YulLiteral","src":"8344:1:11","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8329:3:11"},"nodeType":"YulFunctionCall","src":"8329:17:11"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"8316:12:11"},"nodeType":"YulFunctionCall","src":"8316:31:11"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"8306:6:11","type":""}]},{"body":{"nodeType":"YulBlock","src":"8394:83:11","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nodeType":"YulIdentifier","src":"8396:77:11"},"nodeType":"YulFunctionCall","src":"8396:79:11"},"nodeType":"YulExpressionStatement","src":"8396:79:11"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"8366:6:11"},{"kind":"number","nodeType":"YulLiteral","src":"8374:18:11","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"8363:2:11"},"nodeType":"YulFunctionCall","src":"8363:30:11"},"nodeType":"YulIf","src":"8360:117:11"},{"nodeType":"YulAssignment","src":"8491:98:11","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8561:9:11"},{"name":"offset","nodeType":"YulIdentifier","src":"8572:6:11"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8557:3:11"},"nodeType":"YulFunctionCall","src":"8557:22:11"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"8581:7:11"}],"functionName":{"name":"abi_decode_t_array$_t_address_$dyn_calldata_ptr","nodeType":"YulIdentifier","src":"8509:47:11"},"nodeType":"YulFunctionCall","src":"8509:80:11"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"8491:6:11"},{"name":"value1","nodeType":"YulIdentifier","src":"8499:6:11"}]}]},{"nodeType":"YulBlock","src":"8609:313:11","statements":[{"nodeType":"YulVariableDeclaration","src":"8624:46:11","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8655:9:11"},{"kind":"number","nodeType":"YulLiteral","src":"8666:2:11","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8651:3:11"},"nodeType":"YulFunctionCall","src":"8651:18:11"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"8638:12:11"},"nodeType":"YulFunctionCall","src":"8638:32:11"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"8628:6:11","type":""}]},{"body":{"nodeType":"YulBlock","src":"8717:83:11","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nodeType":"YulIdentifier","src":"8719:77:11"},"nodeType":"YulFunctionCall","src":"8719:79:11"},"nodeType":"YulExpressionStatement","src":"8719:79:11"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"8689:6:11"},{"kind":"number","nodeType":"YulLiteral","src":"8697:18:11","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"8686:2:11"},"nodeType":"YulFunctionCall","src":"8686:30:11"},"nodeType":"YulIf","src":"8683:117:11"},{"nodeType":"YulAssignment","src":"8814:98:11","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8884:9:11"},{"name":"offset","nodeType":"YulIdentifier","src":"8895:6:11"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8880:3:11"},"nodeType":"YulFunctionCall","src":"8880:22:11"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"8904:7:11"}],"functionName":{"name":"abi_decode_t_array$_t_address_$dyn_calldata_ptr","nodeType":"YulIdentifier","src":"8832:47:11"},"nodeType":"YulFunctionCall","src":"8832:80:11"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"8814:6:11"},{"name":"value3","nodeType":"YulIdentifier","src":"8822:6:11"}]}]},{"nodeType":"YulBlock","src":"8932:313:11","statements":[{"nodeType":"YulVariableDeclaration","src":"8947:46:11","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8978:9:11"},{"kind":"number","nodeType":"YulLiteral","src":"8989:2:11","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8974:3:11"},"nodeType":"YulFunctionCall","src":"8974:18:11"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"8961:12:11"},"nodeType":"YulFunctionCall","src":"8961:32:11"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"8951:6:11","type":""}]},{"body":{"nodeType":"YulBlock","src":"9040:83:11","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nodeType":"YulIdentifier","src":"9042:77:11"},"nodeType":"YulFunctionCall","src":"9042:79:11"},"nodeType":"YulExpressionStatement","src":"9042:79:11"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"9012:6:11"},{"kind":"number","nodeType":"YulLiteral","src":"9020:18:11","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"9009:2:11"},"nodeType":"YulFunctionCall","src":"9009:30:11"},"nodeType":"YulIf","src":"9006:117:11"},{"nodeType":"YulAssignment","src":"9137:98:11","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9207:9:11"},{"name":"offset","nodeType":"YulIdentifier","src":"9218:6:11"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9203:3:11"},"nodeType":"YulFunctionCall","src":"9203:22:11"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"9227:7:11"}],"functionName":{"name":"abi_decode_t_array$_t_uint256_$dyn_calldata_ptr","nodeType":"YulIdentifier","src":"9155:47:11"},"nodeType":"YulFunctionCall","src":"9155:80:11"},"variableNames":[{"name":"value4","nodeType":"YulIdentifier","src":"9137:6:11"},{"name":"value5","nodeType":"YulIdentifier","src":"9145:6:11"}]}]}]},"name":"abi_decode_tuple_t_array$_t_address_$dyn_calldata_ptrt_array$_t_address_$dyn_calldata_ptrt_array$_t_uint256_$dyn_calldata_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"8078:9:11","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"8089:7:11","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"8101:6:11","type":""},{"name":"value1","nodeType":"YulTypedName","src":"8109:6:11","type":""},{"name":"value2","nodeType":"YulTypedName","src":"8117:6:11","type":""},{"name":"value3","nodeType":"YulTypedName","src":"8125:6:11","type":""},{"name":"value4","nodeType":"YulTypedName","src":"8133:6:11","type":""},{"name":"value5","nodeType":"YulTypedName","src":"8141:6:11","type":""}],"src":"7943:1309:11"},{"body":{"nodeType":"YulBlock","src":"9298:76:11","statements":[{"body":{"nodeType":"YulBlock","src":"9352:16:11","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9361:1:11","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"9364:1:11","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"9354:6:11"},"nodeType":"YulFunctionCall","src":"9354:12:11"},"nodeType":"YulExpressionStatement","src":"9354:12:11"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"9321:5:11"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"9343:5:11"}],"functionName":{"name":"cleanup_t_bool","nodeType":"YulIdentifier","src":"9328:14:11"},"nodeType":"YulFunctionCall","src":"9328:21:11"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"9318:2:11"},"nodeType":"YulFunctionCall","src":"9318:32:11"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"9311:6:11"},"nodeType":"YulFunctionCall","src":"9311:40:11"},"nodeType":"YulIf","src":"9308:60:11"}]},"name":"validator_revert_t_bool","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"9291:5:11","type":""}],"src":"9258:116:11"},{"body":{"nodeType":"YulBlock","src":"9429:84:11","statements":[{"nodeType":"YulAssignment","src":"9439:29:11","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"9461:6:11"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"9448:12:11"},"nodeType":"YulFunctionCall","src":"9448:20:11"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"9439:5:11"}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"9501:5:11"}],"functionName":{"name":"validator_revert_t_bool","nodeType":"YulIdentifier","src":"9477:23:11"},"nodeType":"YulFunctionCall","src":"9477:30:11"},"nodeType":"YulExpressionStatement","src":"9477:30:11"}]},"name":"abi_decode_t_bool","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"9407:6:11","type":""},{"name":"end","nodeType":"YulTypedName","src":"9415:3:11","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"9423:5:11","type":""}],"src":"9380:133:11"},{"body":{"nodeType":"YulBlock","src":"9599:388:11","statements":[{"body":{"nodeType":"YulBlock","src":"9645:83:11","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nodeType":"YulIdentifier","src":"9647:77:11"},"nodeType":"YulFunctionCall","src":"9647:79:11"},"nodeType":"YulExpressionStatement","src":"9647:79:11"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"9620:7:11"},{"name":"headStart","nodeType":"YulIdentifier","src":"9629:9:11"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"9616:3:11"},"nodeType":"YulFunctionCall","src":"9616:23:11"},{"kind":"number","nodeType":"YulLiteral","src":"9641:2:11","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"9612:3:11"},"nodeType":"YulFunctionCall","src":"9612:32:11"},"nodeType":"YulIf","src":"9609:119:11"},{"nodeType":"YulBlock","src":"9738:117:11","statements":[{"nodeType":"YulVariableDeclaration","src":"9753:15:11","value":{"kind":"number","nodeType":"YulLiteral","src":"9767:1:11","type":"","value":"0"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"9757:6:11","type":""}]},{"nodeType":"YulAssignment","src":"9782:63:11","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9817:9:11"},{"name":"offset","nodeType":"YulIdentifier","src":"9828:6:11"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9813:3:11"},"nodeType":"YulFunctionCall","src":"9813:22:11"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"9837:7:11"}],"functionName":{"name":"abi_decode_t_address","nodeType":"YulIdentifier","src":"9792:20:11"},"nodeType":"YulFunctionCall","src":"9792:53:11"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"9782:6:11"}]}]},{"nodeType":"YulBlock","src":"9865:115:11","statements":[{"nodeType":"YulVariableDeclaration","src":"9880:16:11","value":{"kind":"number","nodeType":"YulLiteral","src":"9894:2:11","type":"","value":"32"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"9884:6:11","type":""}]},{"nodeType":"YulAssignment","src":"9910:60:11","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9942:9:11"},{"name":"offset","nodeType":"YulIdentifier","src":"9953:6:11"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9938:3:11"},"nodeType":"YulFunctionCall","src":"9938:22:11"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"9962:7:11"}],"functionName":{"name":"abi_decode_t_bool","nodeType":"YulIdentifier","src":"9920:17:11"},"nodeType":"YulFunctionCall","src":"9920:50:11"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"9910:6:11"}]}]}]},"name":"abi_decode_tuple_t_addresst_bool","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"9561:9:11","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"9572:7:11","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"9584:6:11","type":""},{"name":"value1","nodeType":"YulTypedName","src":"9592:6:11","type":""}],"src":"9519:468:11"},{"body":{"nodeType":"YulBlock","src":"10058:53:11","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"10075:3:11"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"10098:5:11"}],"functionName":{"name":"cleanup_t_address","nodeType":"YulIdentifier","src":"10080:17:11"},"nodeType":"YulFunctionCall","src":"10080:24:11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10068:6:11"},"nodeType":"YulFunctionCall","src":"10068:37:11"},"nodeType":"YulExpressionStatement","src":"10068:37:11"}]},"name":"abi_encode_t_address_to_t_address_fromStack","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"10046:5:11","type":""},{"name":"pos","nodeType":"YulTypedName","src":"10053:3:11","type":""}],"src":"9993:118:11"},{"body":{"nodeType":"YulBlock","src":"10215:124:11","statements":[{"nodeType":"YulAssignment","src":"10225:26:11","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10237:9:11"},{"kind":"number","nodeType":"YulLiteral","src":"10248:2:11","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10233:3:11"},"nodeType":"YulFunctionCall","src":"10233:18:11"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"10225:4:11"}]},{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"10305:6:11"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10318:9:11"},{"kind":"number","nodeType":"YulLiteral","src":"10329:1:11","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10314:3:11"},"nodeType":"YulFunctionCall","src":"10314:17:11"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nodeType":"YulIdentifier","src":"10261:43:11"},"nodeType":"YulFunctionCall","src":"10261:71:11"},"nodeType":"YulExpressionStatement","src":"10261:71:11"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"10187:9:11","type":""},{"name":"value0","nodeType":"YulTypedName","src":"10199:6:11","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"10210:4:11","type":""}],"src":"10117:222:11"},{"body":{"nodeType":"YulBlock","src":"10428:391:11","statements":[{"body":{"nodeType":"YulBlock","src":"10474:83:11","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nodeType":"YulIdentifier","src":"10476:77:11"},"nodeType":"YulFunctionCall","src":"10476:79:11"},"nodeType":"YulExpressionStatement","src":"10476:79:11"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"10449:7:11"},{"name":"headStart","nodeType":"YulIdentifier","src":"10458:9:11"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"10445:3:11"},"nodeType":"YulFunctionCall","src":"10445:23:11"},{"kind":"number","nodeType":"YulLiteral","src":"10470:2:11","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"10441:3:11"},"nodeType":"YulFunctionCall","src":"10441:32:11"},"nodeType":"YulIf","src":"10438:119:11"},{"nodeType":"YulBlock","src":"10567:117:11","statements":[{"nodeType":"YulVariableDeclaration","src":"10582:15:11","value":{"kind":"number","nodeType":"YulLiteral","src":"10596:1:11","type":"","value":"0"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"10586:6:11","type":""}]},{"nodeType":"YulAssignment","src":"10611:63:11","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10646:9:11"},{"name":"offset","nodeType":"YulIdentifier","src":"10657:6:11"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10642:3:11"},"nodeType":"YulFunctionCall","src":"10642:22:11"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"10666:7:11"}],"functionName":{"name":"abi_decode_t_address","nodeType":"YulIdentifier","src":"10621:20:11"},"nodeType":"YulFunctionCall","src":"10621:53:11"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"10611:6:11"}]}]},{"nodeType":"YulBlock","src":"10694:118:11","statements":[{"nodeType":"YulVariableDeclaration","src":"10709:16:11","value":{"kind":"number","nodeType":"YulLiteral","src":"10723:2:11","type":"","value":"32"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"10713:6:11","type":""}]},{"nodeType":"YulAssignment","src":"10739:63:11","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10774:9:11"},{"name":"offset","nodeType":"YulIdentifier","src":"10785:6:11"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10770:3:11"},"nodeType":"YulFunctionCall","src":"10770:22:11"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"10794:7:11"}],"functionName":{"name":"abi_decode_t_address","nodeType":"YulIdentifier","src":"10749:20:11"},"nodeType":"YulFunctionCall","src":"10749:53:11"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"10739:6:11"}]}]}]},"name":"abi_decode_tuple_t_addresst_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"10390:9:11","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"10401:7:11","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"10413:6:11","type":""},{"name":"value1","nodeType":"YulTypedName","src":"10421:6:11","type":""}],"src":"10345:474:11"},{"body":{"nodeType":"YulBlock","src":"10853:152:11","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10870:1:11","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"10873:77:11","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10863:6:11"},"nodeType":"YulFunctionCall","src":"10863:88:11"},"nodeType":"YulExpressionStatement","src":"10863:88:11"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10967:1:11","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"10970:4:11","type":"","value":"0x32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10960:6:11"},"nodeType":"YulFunctionCall","src":"10960:15:11"},"nodeType":"YulExpressionStatement","src":"10960:15:11"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10991:1:11","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"10994:4:11","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"10984:6:11"},"nodeType":"YulFunctionCall","src":"10984:15:11"},"nodeType":"YulExpressionStatement","src":"10984:15:11"}]},"name":"panic_error_0x32","nodeType":"YulFunctionDefinition","src":"10825:180:11"},{"body":{"nodeType":"YulBlock","src":"11039:152:11","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"11056:1:11","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"11059:77:11","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11049:6:11"},"nodeType":"YulFunctionCall","src":"11049:88:11"},"nodeType":"YulExpressionStatement","src":"11049:88:11"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"11153:1:11","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"11156:4:11","type":"","value":"0x11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11146:6:11"},"nodeType":"YulFunctionCall","src":"11146:15:11"},"nodeType":"YulExpressionStatement","src":"11146:15:11"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"11177:1:11","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"11180:4:11","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"11170:6:11"},"nodeType":"YulFunctionCall","src":"11170:15:11"},"nodeType":"YulExpressionStatement","src":"11170:15:11"}]},"name":"panic_error_0x11","nodeType":"YulFunctionDefinition","src":"11011:180:11"},{"body":{"nodeType":"YulBlock","src":"11241:147:11","statements":[{"nodeType":"YulAssignment","src":"11251:25:11","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"11274:1:11"}],"functionName":{"name":"cleanup_t_uint256","nodeType":"YulIdentifier","src":"11256:17:11"},"nodeType":"YulFunctionCall","src":"11256:20:11"},"variableNames":[{"name":"x","nodeType":"YulIdentifier","src":"11251:1:11"}]},{"nodeType":"YulAssignment","src":"11285:25:11","value":{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"11308:1:11"}],"functionName":{"name":"cleanup_t_uint256","nodeType":"YulIdentifier","src":"11290:17:11"},"nodeType":"YulFunctionCall","src":"11290:20:11"},"variableNames":[{"name":"y","nodeType":"YulIdentifier","src":"11285:1:11"}]},{"nodeType":"YulAssignment","src":"11319:16:11","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"11330:1:11"},{"name":"y","nodeType":"YulIdentifier","src":"11333:1:11"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11326:3:11"},"nodeType":"YulFunctionCall","src":"11326:9:11"},"variableNames":[{"name":"sum","nodeType":"YulIdentifier","src":"11319:3:11"}]},{"body":{"nodeType":"YulBlock","src":"11359:22:11","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"11361:16:11"},"nodeType":"YulFunctionCall","src":"11361:18:11"},"nodeType":"YulExpressionStatement","src":"11361:18:11"}]},"condition":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"11351:1:11"},{"name":"sum","nodeType":"YulIdentifier","src":"11354:3:11"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"11348:2:11"},"nodeType":"YulFunctionCall","src":"11348:10:11"},"nodeType":"YulIf","src":"11345:36:11"}]},"name":"checked_add_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"11228:1:11","type":""},{"name":"y","nodeType":"YulTypedName","src":"11231:1:11","type":""}],"returnVariables":[{"name":"sum","nodeType":"YulTypedName","src":"11237:3:11","type":""}],"src":"11197:191:11"},{"body":{"nodeType":"YulBlock","src":"11437:190:11","statements":[{"nodeType":"YulAssignment","src":"11447:33:11","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"11474:5:11"}],"functionName":{"name":"cleanup_t_uint256","nodeType":"YulIdentifier","src":"11456:17:11"},"nodeType":"YulFunctionCall","src":"11456:24:11"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"11447:5:11"}]},{"body":{"nodeType":"YulBlock","src":"11570:22:11","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"11572:16:11"},"nodeType":"YulFunctionCall","src":"11572:18:11"},"nodeType":"YulExpressionStatement","src":"11572:18:11"}]},"condition":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"11495:5:11"},{"kind":"number","nodeType":"YulLiteral","src":"11502:66:11","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"11492:2:11"},"nodeType":"YulFunctionCall","src":"11492:77:11"},"nodeType":"YulIf","src":"11489:103:11"},{"nodeType":"YulAssignment","src":"11601:20:11","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"11612:5:11"},{"kind":"number","nodeType":"YulLiteral","src":"11619:1:11","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11608:3:11"},"nodeType":"YulFunctionCall","src":"11608:13:11"},"variableNames":[{"name":"ret","nodeType":"YulIdentifier","src":"11601:3:11"}]}]},"name":"increment_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"11423:5:11","type":""}],"returnVariables":[{"name":"ret","nodeType":"YulTypedName","src":"11433:3:11","type":""}],"src":"11394:233:11"},{"body":{"nodeType":"YulBlock","src":"11698:53:11","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"11715:3:11"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"11738:5:11"}],"functionName":{"name":"cleanup_t_uint256","nodeType":"YulIdentifier","src":"11720:17:11"},"nodeType":"YulFunctionCall","src":"11720:24:11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11708:6:11"},"nodeType":"YulFunctionCall","src":"11708:37:11"},"nodeType":"YulExpressionStatement","src":"11708:37:11"}]},"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"11686:5:11","type":""},{"name":"pos","nodeType":"YulTypedName","src":"11693:3:11","type":""}],"src":"11633:118:11"},{"body":{"nodeType":"YulBlock","src":"11883:206:11","statements":[{"nodeType":"YulAssignment","src":"11893:26:11","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11905:9:11"},{"kind":"number","nodeType":"YulLiteral","src":"11916:2:11","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11901:3:11"},"nodeType":"YulFunctionCall","src":"11901:18:11"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"11893:4:11"}]},{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"11973:6:11"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11986:9:11"},{"kind":"number","nodeType":"YulLiteral","src":"11997:1:11","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11982:3:11"},"nodeType":"YulFunctionCall","src":"11982:17:11"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nodeType":"YulIdentifier","src":"11929:43:11"},"nodeType":"YulFunctionCall","src":"11929:71:11"},"nodeType":"YulExpressionStatement","src":"11929:71:11"},{"expression":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"12054:6:11"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12067:9:11"},{"kind":"number","nodeType":"YulLiteral","src":"12078:2:11","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12063:3:11"},"nodeType":"YulFunctionCall","src":"12063:18:11"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nodeType":"YulIdentifier","src":"12010:43:11"},"nodeType":"YulFunctionCall","src":"12010:72:11"},"nodeType":"YulExpressionStatement","src":"12010:72:11"}]},"name":"abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"11847:9:11","type":""},{"name":"value1","nodeType":"YulTypedName","src":"11859:6:11","type":""},{"name":"value0","nodeType":"YulTypedName","src":"11867:6:11","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"11878:4:11","type":""}],"src":"11757:332:11"},{"body":{"nodeType":"YulBlock","src":"12123:152:11","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"12140:1:11","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"12143:77:11","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12133:6:11"},"nodeType":"YulFunctionCall","src":"12133:88:11"},"nodeType":"YulExpressionStatement","src":"12133:88:11"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"12237:1:11","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"12240:4:11","type":"","value":"0x41"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12230:6:11"},"nodeType":"YulFunctionCall","src":"12230:15:11"},"nodeType":"YulExpressionStatement","src":"12230:15:11"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"12261:1:11","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"12264:4:11","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"12254:6:11"},"nodeType":"YulFunctionCall","src":"12254:15:11"},"nodeType":"YulExpressionStatement","src":"12254:15:11"}]},"name":"panic_error_0x41","nodeType":"YulFunctionDefinition","src":"12095:180:11"},{"body":{"nodeType":"YulBlock","src":"12344:80:11","statements":[{"nodeType":"YulAssignment","src":"12354:22:11","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"12369:6:11"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"12363:5:11"},"nodeType":"YulFunctionCall","src":"12363:13:11"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"12354:5:11"}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"12412:5:11"}],"functionName":{"name":"validator_revert_t_uint256","nodeType":"YulIdentifier","src":"12385:26:11"},"nodeType":"YulFunctionCall","src":"12385:33:11"},"nodeType":"YulExpressionStatement","src":"12385:33:11"}]},"name":"abi_decode_t_uint256_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"12322:6:11","type":""},{"name":"end","nodeType":"YulTypedName","src":"12330:3:11","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"12338:5:11","type":""}],"src":"12281:143:11"},{"body":{"nodeType":"YulBlock","src":"12507:274:11","statements":[{"body":{"nodeType":"YulBlock","src":"12553:83:11","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nodeType":"YulIdentifier","src":"12555:77:11"},"nodeType":"YulFunctionCall","src":"12555:79:11"},"nodeType":"YulExpressionStatement","src":"12555:79:11"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"12528:7:11"},{"name":"headStart","nodeType":"YulIdentifier","src":"12537:9:11"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"12524:3:11"},"nodeType":"YulFunctionCall","src":"12524:23:11"},{"kind":"number","nodeType":"YulLiteral","src":"12549:2:11","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"12520:3:11"},"nodeType":"YulFunctionCall","src":"12520:32:11"},"nodeType":"YulIf","src":"12517:119:11"},{"nodeType":"YulBlock","src":"12646:128:11","statements":[{"nodeType":"YulVariableDeclaration","src":"12661:15:11","value":{"kind":"number","nodeType":"YulLiteral","src":"12675:1:11","type":"","value":"0"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"12665:6:11","type":""}]},{"nodeType":"YulAssignment","src":"12690:74:11","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12736:9:11"},{"name":"offset","nodeType":"YulIdentifier","src":"12747:6:11"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12732:3:11"},"nodeType":"YulFunctionCall","src":"12732:22:11"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"12756:7:11"}],"functionName":{"name":"abi_decode_t_uint256_fromMemory","nodeType":"YulIdentifier","src":"12700:31:11"},"nodeType":"YulFunctionCall","src":"12700:64:11"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"12690:6:11"}]}]}]},"name":"abi_decode_tuple_t_uint256_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"12477:9:11","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"12488:7:11","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"12500:6:11","type":""}],"src":"12430:351:11"},{"body":{"nodeType":"YulBlock","src":"12913:206:11","statements":[{"nodeType":"YulAssignment","src":"12923:26:11","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12935:9:11"},{"kind":"number","nodeType":"YulLiteral","src":"12946:2:11","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12931:3:11"},"nodeType":"YulFunctionCall","src":"12931:18:11"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"12923:4:11"}]},{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"13003:6:11"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13016:9:11"},{"kind":"number","nodeType":"YulLiteral","src":"13027:1:11","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13012:3:11"},"nodeType":"YulFunctionCall","src":"13012:17:11"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nodeType":"YulIdentifier","src":"12959:43:11"},"nodeType":"YulFunctionCall","src":"12959:71:11"},"nodeType":"YulExpressionStatement","src":"12959:71:11"},{"expression":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"13084:6:11"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13097:9:11"},{"kind":"number","nodeType":"YulLiteral","src":"13108:2:11","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13093:3:11"},"nodeType":"YulFunctionCall","src":"13093:18:11"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nodeType":"YulIdentifier","src":"13040:43:11"},"nodeType":"YulFunctionCall","src":"13040:72:11"},"nodeType":"YulExpressionStatement","src":"13040:72:11"}]},"name":"abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"12877:9:11","type":""},{"name":"value1","nodeType":"YulTypedName","src":"12889:6:11","type":""},{"name":"value0","nodeType":"YulTypedName","src":"12897:6:11","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"12908:4:11","type":""}],"src":"12787:332:11"},{"body":{"nodeType":"YulBlock","src":"13279:288:11","statements":[{"nodeType":"YulAssignment","src":"13289:26:11","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13301:9:11"},{"kind":"number","nodeType":"YulLiteral","src":"13312:2:11","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13297:3:11"},"nodeType":"YulFunctionCall","src":"13297:18:11"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"13289:4:11"}]},{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"13369:6:11"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13382:9:11"},{"kind":"number","nodeType":"YulLiteral","src":"13393:1:11","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13378:3:11"},"nodeType":"YulFunctionCall","src":"13378:17:11"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nodeType":"YulIdentifier","src":"13325:43:11"},"nodeType":"YulFunctionCall","src":"13325:71:11"},"nodeType":"YulExpressionStatement","src":"13325:71:11"},{"expression":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"13450:6:11"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13463:9:11"},{"kind":"number","nodeType":"YulLiteral","src":"13474:2:11","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13459:3:11"},"nodeType":"YulFunctionCall","src":"13459:18:11"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nodeType":"YulIdentifier","src":"13406:43:11"},"nodeType":"YulFunctionCall","src":"13406:72:11"},"nodeType":"YulExpressionStatement","src":"13406:72:11"},{"expression":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"13532:6:11"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13545:9:11"},{"kind":"number","nodeType":"YulLiteral","src":"13556:2:11","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13541:3:11"},"nodeType":"YulFunctionCall","src":"13541:18:11"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nodeType":"YulIdentifier","src":"13488:43:11"},"nodeType":"YulFunctionCall","src":"13488:72:11"},"nodeType":"YulExpressionStatement","src":"13488:72:11"}]},"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":"13235:9:11","type":""},{"name":"value2","nodeType":"YulTypedName","src":"13247:6:11","type":""},{"name":"value1","nodeType":"YulTypedName","src":"13255:6:11","type":""},{"name":"value0","nodeType":"YulTypedName","src":"13263:6:11","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"13274:4:11","type":""}],"src":"13125:442:11"},{"body":{"nodeType":"YulBlock","src":"13671:124:11","statements":[{"nodeType":"YulAssignment","src":"13681:26:11","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13693:9:11"},{"kind":"number","nodeType":"YulLiteral","src":"13704:2:11","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13689:3:11"},"nodeType":"YulFunctionCall","src":"13689:18:11"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"13681:4:11"}]},{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"13761:6:11"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13774:9:11"},{"kind":"number","nodeType":"YulLiteral","src":"13785:1:11","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13770:3:11"},"nodeType":"YulFunctionCall","src":"13770:17:11"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nodeType":"YulIdentifier","src":"13717:43:11"},"nodeType":"YulFunctionCall","src":"13717:71:11"},"nodeType":"YulExpressionStatement","src":"13717:71:11"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"13643:9:11","type":""},{"name":"value0","nodeType":"YulTypedName","src":"13655:6:11","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"13666:4:11","type":""}],"src":"13573:222:11"},{"body":{"nodeType":"YulBlock","src":"13927:206:11","statements":[{"nodeType":"YulAssignment","src":"13937:26:11","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13949:9:11"},{"kind":"number","nodeType":"YulLiteral","src":"13960:2:11","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13945:3:11"},"nodeType":"YulFunctionCall","src":"13945:18:11"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"13937:4:11"}]},{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"14017:6:11"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14030:9:11"},{"kind":"number","nodeType":"YulLiteral","src":"14041:1:11","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14026:3:11"},"nodeType":"YulFunctionCall","src":"14026:17:11"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nodeType":"YulIdentifier","src":"13973:43:11"},"nodeType":"YulFunctionCall","src":"13973:71:11"},"nodeType":"YulExpressionStatement","src":"13973:71:11"},{"expression":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"14098:6:11"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14111:9:11"},{"kind":"number","nodeType":"YulLiteral","src":"14122:2:11","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14107:3:11"},"nodeType":"YulFunctionCall","src":"14107:18:11"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nodeType":"YulIdentifier","src":"14054:43:11"},"nodeType":"YulFunctionCall","src":"14054:72:11"},"nodeType":"YulExpressionStatement","src":"14054:72:11"}]},"name":"abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"13891:9:11","type":""},{"name":"value1","nodeType":"YulTypedName","src":"13903:6:11","type":""},{"name":"value0","nodeType":"YulTypedName","src":"13911:6:11","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"13922:4:11","type":""}],"src":"13801:332:11"},{"body":{"nodeType":"YulBlock","src":"14293:288:11","statements":[{"nodeType":"YulAssignment","src":"14303:26:11","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14315:9:11"},{"kind":"number","nodeType":"YulLiteral","src":"14326:2:11","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14311:3:11"},"nodeType":"YulFunctionCall","src":"14311:18:11"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"14303:4:11"}]},{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"14383:6:11"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14396:9:11"},{"kind":"number","nodeType":"YulLiteral","src":"14407:1:11","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14392:3:11"},"nodeType":"YulFunctionCall","src":"14392:17:11"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nodeType":"YulIdentifier","src":"14339:43:11"},"nodeType":"YulFunctionCall","src":"14339:71:11"},"nodeType":"YulExpressionStatement","src":"14339:71:11"},{"expression":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"14464:6:11"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14477:9:11"},{"kind":"number","nodeType":"YulLiteral","src":"14488:2:11","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14473:3:11"},"nodeType":"YulFunctionCall","src":"14473:18:11"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nodeType":"YulIdentifier","src":"14420:43:11"},"nodeType":"YulFunctionCall","src":"14420:72:11"},"nodeType":"YulExpressionStatement","src":"14420:72:11"},{"expression":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"14546:6:11"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14559:9:11"},{"kind":"number","nodeType":"YulLiteral","src":"14570:2:11","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14555:3:11"},"nodeType":"YulFunctionCall","src":"14555:18:11"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nodeType":"YulIdentifier","src":"14502:43:11"},"nodeType":"YulFunctionCall","src":"14502:72:11"},"nodeType":"YulExpressionStatement","src":"14502:72:11"}]},"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":"14249:9:11","type":""},{"name":"value2","nodeType":"YulTypedName","src":"14261:6:11","type":""},{"name":"value1","nodeType":"YulTypedName","src":"14269:6:11","type":""},{"name":"value0","nodeType":"YulTypedName","src":"14277:6:11","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"14288:4:11","type":""}],"src":"14139:442:11"}]},"contents":"{\n\n    function allocate_unbounded() -> memPtr {\n        memPtr := mload(64)\n    }\n\n    function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n        revert(0, 0)\n    }\n\n    function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n        revert(0, 0)\n    }\n\n    function cleanup_t_uint160(value) -> cleaned {\n        cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n    }\n\n    function cleanup_t_address(value) -> cleaned {\n        cleaned := cleanup_t_uint160(value)\n    }\n\n    function validator_revert_t_address(value) {\n        if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_address(offset, end) -> value {\n        value := calldataload(offset)\n        validator_revert_t_address(value)\n    }\n\n    function cleanup_t_uint256(value) -> cleaned {\n        cleaned := value\n    }\n\n    function validator_revert_t_uint256(value) {\n        if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_uint256(offset, end) -> value {\n        value := calldataload(offset)\n        validator_revert_t_uint256(value)\n    }\n\n    function abi_decode_tuple_t_addresst_addresst_uint256(headStart, dataEnd) -> value0, value1, value2 {\n        if slt(sub(dataEnd, headStart), 96) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 32\n\n            value1 := abi_decode_t_address(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 64\n\n            value2 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function abi_decode_tuple_t_address(headStart, dataEnd) -> value0 {\n        if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function cleanup_t_bool(value) -> cleaned {\n        cleaned := iszero(iszero(value))\n    }\n\n    function abi_encode_t_bool_to_t_bool_fromStack(value, pos) {\n        mstore(pos, cleanup_t_bool(value))\n    }\n\n    function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_bool_to_t_bool_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() {\n        revert(0, 0)\n    }\n\n    function revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490() {\n        revert(0, 0)\n    }\n\n    function revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef() {\n        revert(0, 0)\n    }\n\n    // address[]\n    function abi_decode_t_array$_t_address_$dyn_calldata_ptr(offset, end) -> arrayPos, length {\n        if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n        length := calldataload(offset)\n        if gt(length, 0xffffffffffffffff) { revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490() }\n        arrayPos := add(offset, 0x20)\n        if gt(add(arrayPos, mul(length, 0x20)), end) { revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef() }\n    }\n\n    // uint256[]\n    function abi_decode_t_array$_t_uint256_$dyn_calldata_ptr(offset, end) -> arrayPos, length {\n        if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n        length := calldataload(offset)\n        if gt(length, 0xffffffffffffffff) { revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490() }\n        arrayPos := add(offset, 0x20)\n        if gt(add(arrayPos, mul(length, 0x20)), end) { revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef() }\n    }\n\n    function abi_decode_tuple_t_array$_t_address_$dyn_calldata_ptrt_addresst_array$_t_uint256_$dyn_calldata_ptr(headStart, dataEnd) -> value0, value1, value2, value3, value4 {\n        if slt(sub(dataEnd, headStart), 96) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := calldataload(add(headStart, 0))\n            if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n            value0, value1 := abi_decode_t_array$_t_address_$dyn_calldata_ptr(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 32\n\n            value2 := abi_decode_t_address(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := calldataload(add(headStart, 64))\n            if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n            value3, value4 := abi_decode_t_array$_t_uint256_$dyn_calldata_ptr(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function abi_decode_tuple_t_array$_t_address_$dyn_calldata_ptrt_address(headStart, dataEnd) -> value0, value1, value2 {\n        if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := calldataload(add(headStart, 0))\n            if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n            value0, value1 := abi_decode_t_array$_t_address_$dyn_calldata_ptr(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 32\n\n            value2 := abi_decode_t_address(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function array_length_t_array$_t_uint256_$dyn_memory_ptr(value) -> length {\n\n        length := mload(value)\n\n    }\n\n    function array_storeLengthForEncoding_t_array$_t_uint256_$dyn_memory_ptr_fromStack(pos, length) -> updated_pos {\n        mstore(pos, length)\n        updated_pos := add(pos, 0x20)\n    }\n\n    function array_dataslot_t_array$_t_uint256_$dyn_memory_ptr(ptr) -> data {\n        data := ptr\n\n        data := add(ptr, 0x20)\n\n    }\n\n    function abi_encode_t_uint256_to_t_uint256(value, pos) {\n        mstore(pos, cleanup_t_uint256(value))\n    }\n\n    function abi_encodeUpdatedPos_t_uint256_to_t_uint256(value0, pos) -> updatedPos {\n        abi_encode_t_uint256_to_t_uint256(value0, pos)\n        updatedPos := add(pos, 0x20)\n    }\n\n    function array_nextElement_t_array$_t_uint256_$dyn_memory_ptr(ptr) -> next {\n        next := add(ptr, 0x20)\n    }\n\n    // uint256[] -> uint256[]\n    function abi_encode_t_array$_t_uint256_$dyn_memory_ptr_to_t_array$_t_uint256_$dyn_memory_ptr_fromStack(value, pos)  -> end  {\n        let length := array_length_t_array$_t_uint256_$dyn_memory_ptr(value)\n        pos := array_storeLengthForEncoding_t_array$_t_uint256_$dyn_memory_ptr_fromStack(pos, length)\n        let baseRef := array_dataslot_t_array$_t_uint256_$dyn_memory_ptr(value)\n        let srcPtr := baseRef\n        for { let i := 0 } lt(i, length) { i := add(i, 1) }\n        {\n            let elementValue0 := mload(srcPtr)\n            pos := abi_encodeUpdatedPos_t_uint256_to_t_uint256(elementValue0, pos)\n            srcPtr := array_nextElement_t_array$_t_uint256_$dyn_memory_ptr(srcPtr)\n        }\n        end := pos\n    }\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        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_array$_t_uint256_$dyn_memory_ptr_to_t_array$_t_uint256_$dyn_memory_ptr_fromStack(value0,  tail)\n\n    }\n\n    function abi_decode_tuple_t_array$_t_address_$dyn_calldata_ptrt_array$_t_address_$dyn_calldata_ptrt_array$_t_uint256_$dyn_calldata_ptr(headStart, dataEnd) -> value0, value1, value2, value3, value4, value5 {\n        if slt(sub(dataEnd, headStart), 96) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := calldataload(add(headStart, 0))\n            if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n            value0, value1 := abi_decode_t_array$_t_address_$dyn_calldata_ptr(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := calldataload(add(headStart, 32))\n            if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n            value2, value3 := abi_decode_t_array$_t_address_$dyn_calldata_ptr(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := calldataload(add(headStart, 64))\n            if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n            value4, value5 := abi_decode_t_array$_t_uint256_$dyn_calldata_ptr(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function validator_revert_t_bool(value) {\n        if iszero(eq(value, cleanup_t_bool(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_bool(offset, end) -> value {\n        value := calldataload(offset)\n        validator_revert_t_bool(value)\n    }\n\n    function abi_decode_tuple_t_addresst_bool(headStart, dataEnd) -> value0, value1 {\n        if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 32\n\n            value1 := abi_decode_t_bool(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n        mstore(pos, cleanup_t_address(value))\n    }\n\n    function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_address_to_t_address_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function abi_decode_tuple_t_addresst_address(headStart, dataEnd) -> value0, value1 {\n        if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 32\n\n            value1 := abi_decode_t_address(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function panic_error_0x32() {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x32)\n        revert(0, 0x24)\n    }\n\n    function panic_error_0x11() {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x11)\n        revert(0, 0x24)\n    }\n\n    function checked_add_t_uint256(x, y) -> sum {\n        x := cleanup_t_uint256(x)\n        y := cleanup_t_uint256(y)\n        sum := add(x, y)\n\n        if gt(x, sum) { panic_error_0x11() }\n\n    }\n\n    function increment_t_uint256(value) -> ret {\n        value := cleanup_t_uint256(value)\n        if eq(value, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) { panic_error_0x11() }\n        ret := add(value, 1)\n    }\n\n    function abi_encode_t_uint256_to_t_uint256_fromStack(value, pos) {\n        mstore(pos, cleanup_t_uint256(value))\n    }\n\n    function abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed(headStart , value1, value0) -> tail {\n        tail := add(headStart, 64)\n\n        abi_encode_t_uint256_to_t_uint256_fromStack(value0,  add(headStart, 0))\n\n        abi_encode_t_uint256_to_t_uint256_fromStack(value1,  add(headStart, 32))\n\n    }\n\n    function panic_error_0x41() {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x41)\n        revert(0, 0x24)\n    }\n\n    function abi_decode_t_uint256_fromMemory(offset, end) -> value {\n        value := mload(offset)\n        validator_revert_t_uint256(value)\n    }\n\n    function abi_decode_tuple_t_uint256_fromMemory(headStart, dataEnd) -> value0 {\n        if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_uint256_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed(headStart , value1, value0) -> tail {\n        tail := add(headStart, 64)\n\n        abi_encode_t_address_to_t_address_fromStack(value0,  add(headStart, 0))\n\n        abi_encode_t_address_to_t_address_fromStack(value1,  add(headStart, 32))\n\n    }\n\n    function abi_encode_tuple_t_address_t_uint256_t_uint256__to_t_address_t_uint256_t_uint256__fromStack_reversed(headStart , value2, value1, value0) -> tail {\n        tail := add(headStart, 96)\n\n        abi_encode_t_address_to_t_address_fromStack(value0,  add(headStart, 0))\n\n        abi_encode_t_uint256_to_t_uint256_fromStack(value1,  add(headStart, 32))\n\n        abi_encode_t_uint256_to_t_uint256_fromStack(value2,  add(headStart, 64))\n\n    }\n\n    function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_uint256_to_t_uint256_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed(headStart , value1, value0) -> tail {\n        tail := add(headStart, 64)\n\n        abi_encode_t_address_to_t_address_fromStack(value0,  add(headStart, 0))\n\n        abi_encode_t_uint256_to_t_uint256_fromStack(value1,  add(headStart, 32))\n\n    }\n\n    function abi_encode_tuple_t_address_t_address_t_uint256__to_t_address_t_address_t_uint256__fromStack_reversed(headStart , value2, value1, value0) -> tail {\n        tail := add(headStart, 96)\n\n        abi_encode_t_address_to_t_address_fromStack(value0,  add(headStart, 0))\n\n        abi_encode_t_address_to_t_address_fromStack(value1,  add(headStart, 32))\n\n        abi_encode_t_uint256_to_t_uint256_fromStack(value2,  add(headStart, 64))\n\n    }\n\n}\n","id":11,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"6080604052600436106100ec5760003560e01c8063558a72971161008a578063845360171161005957806384536017146102e75780638da5cb5b146102fe578063e52f377f14610329578063f2fde38b14610352576100f3565b8063558a72971461025357806366d003ac1461027c5780636ff1c9bc146102a7578063715018a6146102d0576100f3565b8063322eb93a116100c6578063322eb93a146101875780633bbed4a0146101c45780634130e293146101ed5780634c8e394814610216576100f3565b8063125bfb66146100f857806313e7c9d8146101215780631fae577c1461015e576100f3565b366100f357005b600080fd5b34801561010457600080fd5b5061011f600480360381019061011a9190611ac9565b61037b565b005b34801561012d57600080fd5b5061014860048036038101906101439190611b1c565b6104fd565b6040516101559190611b64565b60405180910390f35b34801561016a57600080fd5b5061018560048036038101906101809190611c3a565b61051d565b005b34801561019357600080fd5b506101ae60048036038101906101a99190611ccf565b61087f565b6040516101bb9190611ded565b60405180910390f35b3480156101d057600080fd5b506101eb60048036038101906101e69190611b1c565b6109b8565b005b3480156101f957600080fd5b50610214600480360381019061020f9190611e0f565b610aec565b005b34801561022257600080fd5b5061023d60048036038101906102389190611ccf565b610dce565b60405161024a9190611ded565b60405180910390f35b34801561025f57600080fd5b5061027a60048036038101906102759190611eef565b610f09565b005b34801561028857600080fd5b50610291611020565b60405161029e9190611f3e565b60405180910390f35b3480156102b357600080fd5b506102ce60048036038101906102c99190611b1c565b611046565b005b3480156102dc57600080fd5b506102e561112d565b005b3480156102f357600080fd5b506102fc611141565b005b34801561030a57600080fd5b506103136111c4565b6040516103209190611f3e565b60405180910390f35b34801561033557600080fd5b50610350600480360381019061034b9190611f59565b6111ed565b005b34801561035e57600080fd5b5061037960048036038101906103749190611b1c565b611401565b005b6103836111c4565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141580156104085750600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561043f576040517fea8e4eb500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610447611487565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614806104ae5750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b156104e5576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6104f08383836114cd565b6104f861172c565b505050565b60036020528060005260406000206000915054906101000a900460ff1681565b6105256111c4565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141580156105aa5750600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156105e1576040517fea8e4eb500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6105e9611487565b818190508585905014610628576040517fa24a13a600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008585905003610665576040517fa600c81d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036106cb576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000805b868690508110156107e25760008484838181106106ef576106ee611f99565b5b905060200201351180156107575750600073ffffffffffffffffffffffffffffffffffffffff1687878381811061072957610728611f99565b5b905060200201602081019061073e9190611b1c565b73ffffffffffffffffffffffffffffffffffffffff1614155b156107cf576107a787878381811061077257610771611f99565b5b90506020020160208101906107879190611b1c565b8686868581811061079b5761079a611f99565b5b905060200201356114cd565b8383828181106107ba576107b9611f99565b5b90506020020135826107cc9190611ff7565b91505b80806107da9061202b565b9150506106cf565b50600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f71237a03fe853c3c0682da9bfc664772440710f03c32039d7ff77644fbc823ce8888905084604051610867929190612082565b60405180910390a35061087861172c565b5050505050565b60608383905067ffffffffffffffff81111561089e5761089d6120ab565b5b6040519080825280602002602001820160405280156108cc5781602001602082028036833780820191505090505b50905060005b848490508110156109b0578484828181106108f0576108ef611f99565b5b90506020020160208101906109059190611b1c565b73ffffffffffffffffffffffffffffffffffffffff166370a08231846040518263ffffffff1660e01b815260040161093d9190611f3e565b602060405180830381865afa15801561095a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061097e91906120ef565b82828151811061099157610990611f99565b5b60200260200101818152505080806109a89061202b565b9150506108d2565b509392505050565b6109c0611735565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610a26576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f62e69886a5df0ba8ffcacbfc1388754e7abd9bde24b036354c561f1acd4e459360405160405180910390a35050565b610af46111c4565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614158015610b795750600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15610bb0576040517fea8e4eb500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610bb8611487565b8383905086869050141580610bd35750818190508686905014155b15610c0a576040517fa24a13a600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008686905003610c47576040517fa600c81d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60005b86869050811015610dbd576000838383818110610c6a57610c69611f99565b5b90506020020135118015610cd25750600073ffffffffffffffffffffffffffffffffffffffff16878783818110610ca457610ca3611f99565b5b9050602002016020810190610cb99190611b1c565b73ffffffffffffffffffffffffffffffffffffffff1614155b8015610d325750600073ffffffffffffffffffffffffffffffffffffffff16858583818110610d0457610d03611f99565b5b9050602002016020810190610d199190611b1c565b73ffffffffffffffffffffffffffffffffffffffff1614155b15610daa57610da9878783818110610d4d57610d4c611f99565b5b9050602002016020810190610d629190611b1c565b868684818110610d7557610d74611f99565b5b9050602002016020810190610d8a9190611b1c565b858585818110610d9d57610d9c611f99565b5b905060200201356114cd565b5b8080610db59061202b565b915050610c4a565b50610dc661172c565b505050505050565b60608383905067ffffffffffffffff811115610ded57610dec6120ab565b5b604051908082528060200260200182016040528015610e1b5781602001602082028036833780820191505090505b50905060005b84849050811015610f0157848482818110610e3f57610e3e611f99565b5b9050602002016020810190610e549190611b1c565b73ffffffffffffffffffffffffffffffffffffffff1663dd62ed3e84306040518363ffffffff1660e01b8152600401610e8e92919061211c565b602060405180830381865afa158015610eab573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ecf91906120ef565b828281518110610ee257610ee1611f99565b5b6020026020010181815250508080610ef99061202b565b915050610e21565b509392505050565b610f11611735565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610f77576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f966c160e1c4dbc7df8d69af4ace01e9297c3cf016397b7914971f2fbfa32672d826040516110149190611b64565b60405180910390a25050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61104e611735565b600081905060008173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161108e9190611f3e565b602060405180830381865afa1580156110ab573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110cf91906120ef565b9050600081111561112857611127600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16828473ffffffffffffffffffffffffffffffffffffffff166117bc9092919063ffffffff16565b5b505050565b611135611735565b61113f600061183b565b565b611149611735565b600047905060008111156111c157600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156111bf573d6000803e3d6000fd5b505b50565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6111f5611735565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16148061125c5750600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b15611293576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905082600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508273ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f62e69886a5df0ba8ffcacbfc1388754e7abd9bde24b036354c561f1acd4e459360405160405180910390a38173ffffffffffffffffffffffffffffffffffffffff167f966c160e1c4dbc7df8d69af4ace01e9297c3cf016397b7914971f2fbfa32672d60016040516113f49190611b64565b60405180910390a2505050565b611409611735565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361147b5760006040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081526004016114729190611f3e565b60405180910390fd5b6114848161183b565b50565b6002600154036114c3576040517f3ee5aeb500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6002600181905550565b600083905060008173ffffffffffffffffffffffffffffffffffffffff1663dd62ed3e85306040518363ffffffff1660e01b815260040161150f92919061211c565b602060405180830381865afa15801561152c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061155091906120ef565b90508281101561159b578483826040517f192b9e4e00000000000000000000000000000000000000000000000000000000815260040161159293929190612145565b60405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff166370a08231866040518263ffffffff1660e01b81526004016115d69190611f3e565b602060405180830381865afa1580156115f3573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061161791906120ef565b90506000818511611628578461162a565b815b905060008111156117235761168486600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16838773ffffffffffffffffffffffffffffffffffffffff166118ff909392919063ffffffff16565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167f40b4b442b70a20081fa377001b642c7d3618847a45b5b8ed2b938e30a3299ddb8460405161171a919061217c565b60405180910390a45b50505050505050565b60018081905550565b61173d611981565b73ffffffffffffffffffffffffffffffffffffffff1661175b6111c4565b73ffffffffffffffffffffffffffffffffffffffff16146117ba5761177e611981565b6040517f118cdaa70000000000000000000000000000000000000000000000000000000081526004016117b19190611f3e565b60405180910390fd5b565b611836838473ffffffffffffffffffffffffffffffffffffffff1663a9059cbb85856040516024016117ef929190612197565b604051602081830303815290604052915060e01b6020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050611989565b505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b61197b848573ffffffffffffffffffffffffffffffffffffffff166323b872dd868686604051602401611934939291906121c0565b604051602081830303815290604052915060e01b6020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050611989565b50505050565b600033905090565b600080602060008451602086016000885af1806119ac576040513d6000823e3d81fd5b3d9250600051915050600082146119c75760018114156119e3565b60008473ffffffffffffffffffffffffffffffffffffffff163b145b15611a2557836040517f5274afe7000000000000000000000000000000000000000000000000000000008152600401611a1c9190611f3e565b60405180910390fd5b50505050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611a6082611a35565b9050919050565b611a7081611a55565b8114611a7b57600080fd5b50565b600081359050611a8d81611a67565b92915050565b6000819050919050565b611aa681611a93565b8114611ab157600080fd5b50565b600081359050611ac381611a9d565b92915050565b600080600060608486031215611ae257611ae1611a2b565b5b6000611af086828701611a7e565b9350506020611b0186828701611a7e565b9250506040611b1286828701611ab4565b9150509250925092565b600060208284031215611b3257611b31611a2b565b5b6000611b4084828501611a7e565b91505092915050565b60008115159050919050565b611b5e81611b49565b82525050565b6000602082019050611b796000830184611b55565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f840112611ba457611ba3611b7f565b5b8235905067ffffffffffffffff811115611bc157611bc0611b84565b5b602083019150836020820283011115611bdd57611bdc611b89565b5b9250929050565b60008083601f840112611bfa57611bf9611b7f565b5b8235905067ffffffffffffffff811115611c1757611c16611b84565b5b602083019150836020820283011115611c3357611c32611b89565b5b9250929050565b600080600080600060608688031215611c5657611c55611a2b565b5b600086013567ffffffffffffffff811115611c7457611c73611a30565b5b611c8088828901611b8e565b95509550506020611c9388828901611a7e565b935050604086013567ffffffffffffffff811115611cb457611cb3611a30565b5b611cc088828901611be4565b92509250509295509295909350565b600080600060408486031215611ce857611ce7611a2b565b5b600084013567ffffffffffffffff811115611d0657611d05611a30565b5b611d1286828701611b8e565b93509350506020611d2586828701611a7e565b9150509250925092565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b611d6481611a93565b82525050565b6000611d768383611d5b565b60208301905092915050565b6000602082019050919050565b6000611d9a82611d2f565b611da48185611d3a565b9350611daf83611d4b565b8060005b83811015611de0578151611dc78882611d6a565b9750611dd283611d82565b925050600181019050611db3565b5085935050505092915050565b60006020820190508181036000830152611e078184611d8f565b905092915050565b60008060008060008060608789031215611e2c57611e2b611a2b565b5b600087013567ffffffffffffffff811115611e4a57611e49611a30565b5b611e5689828a01611b8e565b9650965050602087013567ffffffffffffffff811115611e7957611e78611a30565b5b611e8589828a01611b8e565b9450945050604087013567ffffffffffffffff811115611ea857611ea7611a30565b5b611eb489828a01611be4565b92509250509295509295509295565b611ecc81611b49565b8114611ed757600080fd5b50565b600081359050611ee981611ec3565b92915050565b60008060408385031215611f0657611f05611a2b565b5b6000611f1485828601611a7e565b9250506020611f2585828601611eda565b9150509250929050565b611f3881611a55565b82525050565b6000602082019050611f536000830184611f2f565b92915050565b60008060408385031215611f7057611f6f611a2b565b5b6000611f7e85828601611a7e565b9250506020611f8f85828601611a7e565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061200282611a93565b915061200d83611a93565b925082820190508082111561202557612024611fc8565b5b92915050565b600061203682611a93565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361206857612067611fc8565b5b600182019050919050565b61207c81611a93565b82525050565b60006040820190506120976000830185612073565b6120a46020830184612073565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000815190506120e981611a9d565b92915050565b60006020828403121561210557612104611a2b565b5b6000612113848285016120da565b91505092915050565b60006040820190506121316000830185611f2f565b61213e6020830184611f2f565b9392505050565b600060608201905061215a6000830186611f2f565b6121676020830185612073565b6121746040830184612073565b949350505050565b60006020820190506121916000830184612073565b92915050565b60006040820190506121ac6000830185611f2f565b6121b96020830184612073565b9392505050565b60006060820190506121d56000830186611f2f565b6121e26020830185611f2f565b6121ef6040830184612073565b94935050505056fea26469706673582212203f7108ad84125efe51b0dedac52ef859f7fa3aa714cd12a90bceb0eb79f8871464736f6c63430008140033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0xEC JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x558A7297 GT PUSH2 0x8A JUMPI DUP1 PUSH4 0x84536017 GT PUSH2 0x59 JUMPI DUP1 PUSH4 0x84536017 EQ PUSH2 0x2E7 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x2FE JUMPI DUP1 PUSH4 0xE52F377F EQ PUSH2 0x329 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x352 JUMPI PUSH2 0xF3 JUMP JUMPDEST DUP1 PUSH4 0x558A7297 EQ PUSH2 0x253 JUMPI DUP1 PUSH4 0x66D003AC EQ PUSH2 0x27C JUMPI DUP1 PUSH4 0x6FF1C9BC EQ PUSH2 0x2A7 JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x2D0 JUMPI PUSH2 0xF3 JUMP JUMPDEST DUP1 PUSH4 0x322EB93A GT PUSH2 0xC6 JUMPI DUP1 PUSH4 0x322EB93A EQ PUSH2 0x187 JUMPI DUP1 PUSH4 0x3BBED4A0 EQ PUSH2 0x1C4 JUMPI DUP1 PUSH4 0x4130E293 EQ PUSH2 0x1ED JUMPI DUP1 PUSH4 0x4C8E3948 EQ PUSH2 0x216 JUMPI PUSH2 0xF3 JUMP JUMPDEST DUP1 PUSH4 0x125BFB66 EQ PUSH2 0xF8 JUMPI DUP1 PUSH4 0x13E7C9D8 EQ PUSH2 0x121 JUMPI DUP1 PUSH4 0x1FAE577C EQ PUSH2 0x15E JUMPI PUSH2 0xF3 JUMP JUMPDEST CALLDATASIZE PUSH2 0xF3 JUMPI STOP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x104 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x11F PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x11A SWAP2 SWAP1 PUSH2 0x1AC9 JUMP JUMPDEST PUSH2 0x37B JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x12D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x148 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x143 SWAP2 SWAP1 PUSH2 0x1B1C JUMP JUMPDEST PUSH2 0x4FD JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x155 SWAP2 SWAP1 PUSH2 0x1B64 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x16A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x185 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x180 SWAP2 SWAP1 PUSH2 0x1C3A JUMP JUMPDEST PUSH2 0x51D JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x193 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1AE PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1A9 SWAP2 SWAP1 PUSH2 0x1CCF JUMP JUMPDEST PUSH2 0x87F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1BB SWAP2 SWAP1 PUSH2 0x1DED JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1D0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1EB PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1E6 SWAP2 SWAP1 PUSH2 0x1B1C JUMP JUMPDEST PUSH2 0x9B8 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1F9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x214 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x20F SWAP2 SWAP1 PUSH2 0x1E0F JUMP JUMPDEST PUSH2 0xAEC JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x222 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x23D PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x238 SWAP2 SWAP1 PUSH2 0x1CCF JUMP JUMPDEST PUSH2 0xDCE JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x24A SWAP2 SWAP1 PUSH2 0x1DED JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x25F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x27A PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x275 SWAP2 SWAP1 PUSH2 0x1EEF JUMP JUMPDEST PUSH2 0xF09 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x288 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x291 PUSH2 0x1020 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x29E SWAP2 SWAP1 PUSH2 0x1F3E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2B3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2CE PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x2C9 SWAP2 SWAP1 PUSH2 0x1B1C JUMP JUMPDEST PUSH2 0x1046 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2DC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2E5 PUSH2 0x112D JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2F3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2FC PUSH2 0x1141 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x30A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x313 PUSH2 0x11C4 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x320 SWAP2 SWAP1 PUSH2 0x1F3E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x335 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x350 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x34B SWAP2 SWAP1 PUSH2 0x1F59 JUMP JUMPDEST PUSH2 0x11ED JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x35E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x379 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x374 SWAP2 SWAP1 PUSH2 0x1B1C JUMP JUMPDEST PUSH2 0x1401 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x383 PUSH2 0x11C4 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO DUP1 ISZERO PUSH2 0x408 JUMPI POP PUSH1 0x3 PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO JUMPDEST ISZERO PUSH2 0x43F JUMPI PUSH1 0x40 MLOAD PUSH32 0xEA8E4EB500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x447 PUSH2 0x1487 JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ DUP1 PUSH2 0x4AE JUMPI POP PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ JUMPDEST ISZERO PUSH2 0x4E5 JUMPI PUSH1 0x40 MLOAD PUSH32 0xD92E233D00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x4F0 DUP4 DUP4 DUP4 PUSH2 0x14CD JUMP JUMPDEST PUSH2 0x4F8 PUSH2 0x172C JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x3 PUSH1 0x20 MSTORE DUP1 PUSH1 0x0 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP2 POP SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH2 0x525 PUSH2 0x11C4 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO DUP1 ISZERO PUSH2 0x5AA JUMPI POP PUSH1 0x3 PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO JUMPDEST ISZERO PUSH2 0x5E1 JUMPI PUSH1 0x40 MLOAD PUSH32 0xEA8E4EB500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x5E9 PUSH2 0x1487 JUMP JUMPDEST DUP2 DUP2 SWAP1 POP DUP6 DUP6 SWAP1 POP EQ PUSH2 0x628 JUMPI PUSH1 0x40 MLOAD PUSH32 0xA24A13A600000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP6 DUP6 SWAP1 POP SUB PUSH2 0x665 JUMPI PUSH1 0x40 MLOAD PUSH32 0xA600C81D00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x6CB JUMPI PUSH1 0x40 MLOAD PUSH32 0xD92E233D00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 JUMPDEST DUP7 DUP7 SWAP1 POP DUP2 LT ISZERO PUSH2 0x7E2 JUMPI PUSH1 0x0 DUP5 DUP5 DUP4 DUP2 DUP2 LT PUSH2 0x6EF JUMPI PUSH2 0x6EE PUSH2 0x1F99 JUMP JUMPDEST JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD CALLDATALOAD GT DUP1 ISZERO PUSH2 0x757 JUMPI POP PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP8 DUP8 DUP4 DUP2 DUP2 LT PUSH2 0x729 JUMPI PUSH2 0x728 PUSH2 0x1F99 JUMP JUMPDEST JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x73E SWAP2 SWAP1 PUSH2 0x1B1C JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO JUMPDEST ISZERO PUSH2 0x7CF JUMPI PUSH2 0x7A7 DUP8 DUP8 DUP4 DUP2 DUP2 LT PUSH2 0x772 JUMPI PUSH2 0x771 PUSH2 0x1F99 JUMP JUMPDEST JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x787 SWAP2 SWAP1 PUSH2 0x1B1C JUMP JUMPDEST DUP7 DUP7 DUP7 DUP6 DUP2 DUP2 LT PUSH2 0x79B JUMPI PUSH2 0x79A PUSH2 0x1F99 JUMP JUMPDEST JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD CALLDATALOAD PUSH2 0x14CD JUMP JUMPDEST DUP4 DUP4 DUP3 DUP2 DUP2 LT PUSH2 0x7BA JUMPI PUSH2 0x7B9 PUSH2 0x1F99 JUMP JUMPDEST JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD CALLDATALOAD DUP3 PUSH2 0x7CC SWAP2 SWAP1 PUSH2 0x1FF7 JUMP JUMPDEST SWAP2 POP JUMPDEST DUP1 DUP1 PUSH2 0x7DA SWAP1 PUSH2 0x202B JUMP JUMPDEST SWAP2 POP POP PUSH2 0x6CF JUMP JUMPDEST POP PUSH1 0x2 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x71237A03FE853C3C0682DA9BFC664772440710F03C32039D7FF77644FBC823CE DUP9 DUP9 SWAP1 POP DUP5 PUSH1 0x40 MLOAD PUSH2 0x867 SWAP3 SWAP2 SWAP1 PUSH2 0x2082 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP PUSH2 0x878 PUSH2 0x172C JUMP JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 DUP4 DUP4 SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x89E JUMPI PUSH2 0x89D PUSH2 0x20AB JUMP JUMPDEST JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x8CC JUMPI DUP2 PUSH1 0x20 ADD PUSH1 0x20 DUP3 MUL DUP1 CALLDATASIZE DUP4 CALLDATACOPY DUP1 DUP3 ADD SWAP2 POP POP SWAP1 POP JUMPDEST POP SWAP1 POP PUSH1 0x0 JUMPDEST DUP5 DUP5 SWAP1 POP DUP2 LT ISZERO PUSH2 0x9B0 JUMPI DUP5 DUP5 DUP3 DUP2 DUP2 LT PUSH2 0x8F0 JUMPI PUSH2 0x8EF PUSH2 0x1F99 JUMP JUMPDEST JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x905 SWAP2 SWAP1 PUSH2 0x1B1C JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 DUP5 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x93D SWAP2 SWAP1 PUSH2 0x1F3E JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x95A JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x97E SWAP2 SWAP1 PUSH2 0x20EF JUMP JUMPDEST DUP3 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x991 JUMPI PUSH2 0x990 PUSH2 0x1F99 JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD DUP2 DUP2 MSTORE POP POP DUP1 DUP1 PUSH2 0x9A8 SWAP1 PUSH2 0x202B JUMP JUMPDEST SWAP2 POP POP PUSH2 0x8D2 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0x9C0 PUSH2 0x1735 JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0xA26 JUMPI PUSH1 0x40 MLOAD PUSH32 0xD92E233D00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x2 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP DUP2 PUSH1 0x2 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x62E69886A5DF0BA8FFCACBFC1388754E7ABD9BDE24B036354C561F1ACD4E4593 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH2 0xAF4 PUSH2 0x11C4 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO DUP1 ISZERO PUSH2 0xB79 JUMPI POP PUSH1 0x3 PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO JUMPDEST ISZERO PUSH2 0xBB0 JUMPI PUSH1 0x40 MLOAD PUSH32 0xEA8E4EB500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xBB8 PUSH2 0x1487 JUMP JUMPDEST DUP4 DUP4 SWAP1 POP DUP7 DUP7 SWAP1 POP EQ ISZERO DUP1 PUSH2 0xBD3 JUMPI POP DUP2 DUP2 SWAP1 POP DUP7 DUP7 SWAP1 POP EQ ISZERO JUMPDEST ISZERO PUSH2 0xC0A JUMPI PUSH1 0x40 MLOAD PUSH32 0xA24A13A600000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP7 DUP7 SWAP1 POP SUB PUSH2 0xC47 JUMPI PUSH1 0x40 MLOAD PUSH32 0xA600C81D00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 JUMPDEST DUP7 DUP7 SWAP1 POP DUP2 LT ISZERO PUSH2 0xDBD JUMPI PUSH1 0x0 DUP4 DUP4 DUP4 DUP2 DUP2 LT PUSH2 0xC6A JUMPI PUSH2 0xC69 PUSH2 0x1F99 JUMP JUMPDEST JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD CALLDATALOAD GT DUP1 ISZERO PUSH2 0xCD2 JUMPI POP PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP8 DUP8 DUP4 DUP2 DUP2 LT PUSH2 0xCA4 JUMPI PUSH2 0xCA3 PUSH2 0x1F99 JUMP JUMPDEST JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0xCB9 SWAP2 SWAP1 PUSH2 0x1B1C JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO JUMPDEST DUP1 ISZERO PUSH2 0xD32 JUMPI POP PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP6 DUP6 DUP4 DUP2 DUP2 LT PUSH2 0xD04 JUMPI PUSH2 0xD03 PUSH2 0x1F99 JUMP JUMPDEST JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0xD19 SWAP2 SWAP1 PUSH2 0x1B1C JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO JUMPDEST ISZERO PUSH2 0xDAA JUMPI PUSH2 0xDA9 DUP8 DUP8 DUP4 DUP2 DUP2 LT PUSH2 0xD4D JUMPI PUSH2 0xD4C PUSH2 0x1F99 JUMP JUMPDEST JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0xD62 SWAP2 SWAP1 PUSH2 0x1B1C JUMP JUMPDEST DUP7 DUP7 DUP5 DUP2 DUP2 LT PUSH2 0xD75 JUMPI PUSH2 0xD74 PUSH2 0x1F99 JUMP JUMPDEST JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0xD8A SWAP2 SWAP1 PUSH2 0x1B1C JUMP JUMPDEST DUP6 DUP6 DUP6 DUP2 DUP2 LT PUSH2 0xD9D JUMPI PUSH2 0xD9C PUSH2 0x1F99 JUMP JUMPDEST JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD CALLDATALOAD PUSH2 0x14CD JUMP JUMPDEST JUMPDEST DUP1 DUP1 PUSH2 0xDB5 SWAP1 PUSH2 0x202B JUMP JUMPDEST SWAP2 POP POP PUSH2 0xC4A JUMP JUMPDEST POP PUSH2 0xDC6 PUSH2 0x172C JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 DUP4 DUP4 SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xDED JUMPI PUSH2 0xDEC PUSH2 0x20AB JUMP JUMPDEST JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0xE1B JUMPI DUP2 PUSH1 0x20 ADD PUSH1 0x20 DUP3 MUL DUP1 CALLDATASIZE DUP4 CALLDATACOPY DUP1 DUP3 ADD SWAP2 POP POP SWAP1 POP JUMPDEST POP SWAP1 POP PUSH1 0x0 JUMPDEST DUP5 DUP5 SWAP1 POP DUP2 LT ISZERO PUSH2 0xF01 JUMPI DUP5 DUP5 DUP3 DUP2 DUP2 LT PUSH2 0xE3F JUMPI PUSH2 0xE3E PUSH2 0x1F99 JUMP JUMPDEST JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0xE54 SWAP2 SWAP1 PUSH2 0x1B1C JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xDD62ED3E DUP5 ADDRESS PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xE8E SWAP3 SWAP2 SWAP1 PUSH2 0x211C JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xEAB JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xECF SWAP2 SWAP1 PUSH2 0x20EF JUMP JUMPDEST DUP3 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0xEE2 JUMPI PUSH2 0xEE1 PUSH2 0x1F99 JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD DUP2 DUP2 MSTORE POP POP DUP1 DUP1 PUSH2 0xEF9 SWAP1 PUSH2 0x202B JUMP JUMPDEST SWAP2 POP POP PUSH2 0xE21 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0xF11 PUSH2 0x1735 JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0xF77 JUMPI PUSH1 0x40 MLOAD PUSH32 0xD92E233D00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0x3 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x966C160E1C4DBC7DF8D69AF4ACE01E9297C3CF016397B7914971F2FBFA32672D DUP3 PUSH1 0x40 MLOAD PUSH2 0x1014 SWAP2 SWAP1 PUSH2 0x1B64 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP POP JUMP JUMPDEST PUSH1 0x2 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH2 0x104E PUSH2 0x1735 JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP PUSH1 0x0 DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x108E SWAP2 SWAP1 PUSH2 0x1F3E JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x10AB JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x10CF SWAP2 SWAP1 PUSH2 0x20EF JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 GT ISZERO PUSH2 0x1128 JUMPI PUSH2 0x1127 PUSH1 0x2 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x17BC SWAP1 SWAP3 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST JUMPDEST POP POP POP JUMP JUMPDEST PUSH2 0x1135 PUSH2 0x1735 JUMP JUMPDEST PUSH2 0x113F PUSH1 0x0 PUSH2 0x183B JUMP JUMPDEST JUMP JUMPDEST PUSH2 0x1149 PUSH2 0x1735 JUMP JUMPDEST PUSH1 0x0 SELFBALANCE SWAP1 POP PUSH1 0x0 DUP2 GT ISZERO PUSH2 0x11C1 JUMPI PUSH1 0x2 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x8FC DUP3 SWAP1 DUP2 ISZERO MUL SWAP1 PUSH1 0x40 MLOAD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0x11BF JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x11F5 PUSH2 0x1735 JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ DUP1 PUSH2 0x125C JUMPI POP PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ JUMPDEST ISZERO PUSH2 0x1293 JUMPI PUSH1 0x40 MLOAD PUSH32 0xD92E233D00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x2 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP DUP3 PUSH1 0x2 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH1 0x1 PUSH1 0x3 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x62E69886A5DF0BA8FFCACBFC1388754E7ABD9BDE24B036354C561F1ACD4E4593 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x966C160E1C4DBC7DF8D69AF4ACE01E9297C3CF016397B7914971F2FBFA32672D PUSH1 0x1 PUSH1 0x40 MLOAD PUSH2 0x13F4 SWAP2 SWAP1 PUSH2 0x1B64 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP POP POP JUMP JUMPDEST PUSH2 0x1409 PUSH2 0x1735 JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x147B JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x1E4FBDF700000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1472 SWAP2 SWAP1 PUSH2 0x1F3E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x1484 DUP2 PUSH2 0x183B JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x2 PUSH1 0x1 SLOAD SUB PUSH2 0x14C3 JUMPI PUSH1 0x40 MLOAD PUSH32 0x3EE5AEB500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x2 PUSH1 0x1 DUP2 SWAP1 SSTORE POP JUMP JUMPDEST PUSH1 0x0 DUP4 SWAP1 POP PUSH1 0x0 DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xDD62ED3E DUP6 ADDRESS PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x150F SWAP3 SWAP2 SWAP1 PUSH2 0x211C JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x152C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1550 SWAP2 SWAP1 PUSH2 0x20EF JUMP JUMPDEST SWAP1 POP DUP3 DUP2 LT ISZERO PUSH2 0x159B JUMPI DUP5 DUP4 DUP3 PUSH1 0x40 MLOAD PUSH32 0x192B9E4E00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1592 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2145 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 DUP7 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x15D6 SWAP2 SWAP1 PUSH2 0x1F3E JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x15F3 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1617 SWAP2 SWAP1 PUSH2 0x20EF JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 DUP6 GT PUSH2 0x1628 JUMPI DUP5 PUSH2 0x162A JUMP JUMPDEST DUP2 JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 GT ISZERO PUSH2 0x1723 JUMPI PUSH2 0x1684 DUP7 PUSH1 0x2 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 DUP8 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x18FF SWAP1 SWAP4 SWAP3 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH1 0x2 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP9 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x40B4B442B70A20081FA377001B642C7D3618847A45B5B8ED2B938E30A3299DDB DUP5 PUSH1 0x40 MLOAD PUSH2 0x171A SWAP2 SWAP1 PUSH2 0x217C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 JUMPDEST POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 DUP1 DUP2 SWAP1 SSTORE POP JUMP JUMPDEST PUSH2 0x173D PUSH2 0x1981 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x175B PUSH2 0x11C4 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x17BA JUMPI PUSH2 0x177E PUSH2 0x1981 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x118CDAA700000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x17B1 SWAP2 SWAP1 PUSH2 0x1F3E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST JUMP JUMPDEST PUSH2 0x1836 DUP4 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xA9059CBB DUP6 DUP6 PUSH1 0x40 MLOAD PUSH1 0x24 ADD PUSH2 0x17EF SWAP3 SWAP2 SWAP1 PUSH2 0x2197 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP2 POP PUSH1 0xE0 SHL PUSH1 0x20 DUP3 ADD DUP1 MLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 DUP2 DUP4 AND OR DUP4 MSTORE POP POP POP POP PUSH2 0x1989 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP DUP2 PUSH1 0x0 DUP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH2 0x197B DUP5 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x23B872DD DUP7 DUP7 DUP7 PUSH1 0x40 MLOAD PUSH1 0x24 ADD PUSH2 0x1934 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x21C0 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP2 POP PUSH1 0xE0 SHL PUSH1 0x20 DUP3 ADD DUP1 MLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 DUP2 DUP4 AND OR DUP4 MSTORE POP POP POP POP PUSH2 0x1989 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 CALLER SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x20 PUSH1 0x0 DUP5 MLOAD PUSH1 0x20 DUP7 ADD PUSH1 0x0 DUP9 GAS CALL DUP1 PUSH2 0x19AC JUMPI PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY RETURNDATASIZE DUP2 REVERT JUMPDEST RETURNDATASIZE SWAP3 POP PUSH1 0x0 MLOAD SWAP2 POP POP PUSH1 0x0 DUP3 EQ PUSH2 0x19C7 JUMPI PUSH1 0x1 DUP2 EQ ISZERO PUSH2 0x19E3 JUMP JUMPDEST PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EXTCODESIZE EQ JUMPDEST ISZERO PUSH2 0x1A25 JUMPI DUP4 PUSH1 0x40 MLOAD PUSH32 0x5274AFE700000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1A1C SWAP2 SWAP1 PUSH2 0x1F3E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1A60 DUP3 PUSH2 0x1A35 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1A70 DUP2 PUSH2 0x1A55 JUMP JUMPDEST DUP2 EQ PUSH2 0x1A7B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1A8D DUP2 PUSH2 0x1A67 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1AA6 DUP2 PUSH2 0x1A93 JUMP JUMPDEST DUP2 EQ PUSH2 0x1AB1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1AC3 DUP2 PUSH2 0x1A9D JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x1AE2 JUMPI PUSH2 0x1AE1 PUSH2 0x1A2B JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1AF0 DUP7 DUP3 DUP8 ADD PUSH2 0x1A7E JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x1B01 DUP7 DUP3 DUP8 ADD PUSH2 0x1A7E JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0x1B12 DUP7 DUP3 DUP8 ADD PUSH2 0x1AB4 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1B32 JUMPI PUSH2 0x1B31 PUSH2 0x1A2B JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1B40 DUP5 DUP3 DUP6 ADD PUSH2 0x1A7E JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1B5E DUP2 PUSH2 0x1B49 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1B79 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1B55 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x1BA4 JUMPI PUSH2 0x1BA3 PUSH2 0x1B7F JUMP JUMPDEST JUMPDEST DUP3 CALLDATALOAD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1BC1 JUMPI PUSH2 0x1BC0 PUSH2 0x1B84 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0x1BDD JUMPI PUSH2 0x1BDC PUSH2 0x1B89 JUMP JUMPDEST JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x1BFA JUMPI PUSH2 0x1BF9 PUSH2 0x1B7F JUMP JUMPDEST JUMPDEST DUP3 CALLDATALOAD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1C17 JUMPI PUSH2 0x1C16 PUSH2 0x1B84 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0x1C33 JUMPI PUSH2 0x1C32 PUSH2 0x1B89 JUMP JUMPDEST JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x1C56 JUMPI PUSH2 0x1C55 PUSH2 0x1A2B JUMP JUMPDEST JUMPDEST PUSH1 0x0 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1C74 JUMPI PUSH2 0x1C73 PUSH2 0x1A30 JUMP JUMPDEST JUMPDEST PUSH2 0x1C80 DUP9 DUP3 DUP10 ADD PUSH2 0x1B8E JUMP JUMPDEST SWAP6 POP SWAP6 POP POP PUSH1 0x20 PUSH2 0x1C93 DUP9 DUP3 DUP10 ADD PUSH2 0x1A7E JUMP JUMPDEST SWAP4 POP POP PUSH1 0x40 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1CB4 JUMPI PUSH2 0x1CB3 PUSH2 0x1A30 JUMP JUMPDEST JUMPDEST PUSH2 0x1CC0 DUP9 DUP3 DUP10 ADD PUSH2 0x1BE4 JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 SWAP1 SWAP4 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x40 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x1CE8 JUMPI PUSH2 0x1CE7 PUSH2 0x1A2B JUMP JUMPDEST JUMPDEST PUSH1 0x0 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1D06 JUMPI PUSH2 0x1D05 PUSH2 0x1A30 JUMP JUMPDEST JUMPDEST PUSH2 0x1D12 DUP7 DUP3 DUP8 ADD PUSH2 0x1B8E JUMP JUMPDEST SWAP4 POP SWAP4 POP POP PUSH1 0x20 PUSH2 0x1D25 DUP7 DUP3 DUP8 ADD PUSH2 0x1A7E JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1D64 DUP2 PUSH2 0x1A93 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1D76 DUP4 DUP4 PUSH2 0x1D5B JUMP JUMPDEST PUSH1 0x20 DUP4 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1D9A DUP3 PUSH2 0x1D2F JUMP JUMPDEST PUSH2 0x1DA4 DUP2 DUP6 PUSH2 0x1D3A JUMP JUMPDEST SWAP4 POP PUSH2 0x1DAF DUP4 PUSH2 0x1D4B JUMP JUMPDEST DUP1 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x1DE0 JUMPI DUP2 MLOAD PUSH2 0x1DC7 DUP9 DUP3 PUSH2 0x1D6A JUMP JUMPDEST SWAP8 POP PUSH2 0x1DD2 DUP4 PUSH2 0x1D82 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH2 0x1DB3 JUMP JUMPDEST POP DUP6 SWAP4 POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x1E07 DUP2 DUP5 PUSH2 0x1D8F JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x60 DUP8 DUP10 SUB SLT ISZERO PUSH2 0x1E2C JUMPI PUSH2 0x1E2B PUSH2 0x1A2B JUMP JUMPDEST JUMPDEST PUSH1 0x0 DUP8 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1E4A JUMPI PUSH2 0x1E49 PUSH2 0x1A30 JUMP JUMPDEST JUMPDEST PUSH2 0x1E56 DUP10 DUP3 DUP11 ADD PUSH2 0x1B8E JUMP JUMPDEST SWAP7 POP SWAP7 POP POP PUSH1 0x20 DUP8 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1E79 JUMPI PUSH2 0x1E78 PUSH2 0x1A30 JUMP JUMPDEST JUMPDEST PUSH2 0x1E85 DUP10 DUP3 DUP11 ADD PUSH2 0x1B8E JUMP JUMPDEST SWAP5 POP SWAP5 POP POP PUSH1 0x40 DUP8 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1EA8 JUMPI PUSH2 0x1EA7 PUSH2 0x1A30 JUMP JUMPDEST JUMPDEST PUSH2 0x1EB4 DUP10 DUP3 DUP11 ADD PUSH2 0x1BE4 JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 POP SWAP3 SWAP6 JUMP JUMPDEST PUSH2 0x1ECC DUP2 PUSH2 0x1B49 JUMP JUMPDEST DUP2 EQ PUSH2 0x1ED7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1EE9 DUP2 PUSH2 0x1EC3 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1F06 JUMPI PUSH2 0x1F05 PUSH2 0x1A2B JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1F14 DUP6 DUP3 DUP7 ADD PUSH2 0x1A7E JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x1F25 DUP6 DUP3 DUP7 ADD PUSH2 0x1EDA JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH2 0x1F38 DUP2 PUSH2 0x1A55 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1F53 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1F2F JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1F70 JUMPI PUSH2 0x1F6F PUSH2 0x1A2B JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1F7E DUP6 DUP3 DUP7 ADD PUSH2 0x1A7E JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x1F8F DUP6 DUP3 DUP7 ADD PUSH2 0x1A7E JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x2002 DUP3 PUSH2 0x1A93 JUMP JUMPDEST SWAP2 POP PUSH2 0x200D DUP4 PUSH2 0x1A93 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP DUP1 DUP3 GT ISZERO PUSH2 0x2025 JUMPI PUSH2 0x2024 PUSH2 0x1FC8 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2036 DUP3 PUSH2 0x1A93 JUMP JUMPDEST SWAP2 POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 SUB PUSH2 0x2068 JUMPI PUSH2 0x2067 PUSH2 0x1FC8 JUMP JUMPDEST JUMPDEST PUSH1 0x1 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x207C DUP2 PUSH2 0x1A93 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x2097 PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x2073 JUMP JUMPDEST PUSH2 0x20A4 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x2073 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x20E9 DUP2 PUSH2 0x1A9D JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2105 JUMPI PUSH2 0x2104 PUSH2 0x1A2B JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x2113 DUP5 DUP3 DUP6 ADD PUSH2 0x20DA JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x2131 PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x1F2F JUMP JUMPDEST PUSH2 0x213E PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x1F2F JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0x215A PUSH1 0x0 DUP4 ADD DUP7 PUSH2 0x1F2F JUMP JUMPDEST PUSH2 0x2167 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x2073 JUMP JUMPDEST PUSH2 0x2174 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x2073 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x2191 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x2073 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x21AC PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x1F2F JUMP JUMPDEST PUSH2 0x21B9 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x2073 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0x21D5 PUSH1 0x0 DUP4 ADD DUP7 PUSH2 0x1F2F JUMP JUMPDEST PUSH2 0x21E2 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x1F2F JUMP JUMPDEST PUSH2 0x21EF PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x2073 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 EXTCODEHASH PUSH18 0x8AD84125EFE51B0DEDAC52EF859F7FA3AA7 EQ 0xCD SLT 0xA9 SIGNEXTEND 0xCE 0xB0 0xEB PUSH26 0xF8871464736F6C63430008140033000000000000000000000000 ","sourceMap":"714:8192:10:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3920:275;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;949:41;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4447:731;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7737:373;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2319:276;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5435:616;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7121:398;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2768:241;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;864:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8258:283;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2293:101:0;;;;;;;;;;;;;:::i;:::-;;8629:199:10;;;;;;;;;;;;;:::i;:::-;;1638:85:0;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3258:423:10;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2543:215:0;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3920:275:10;1781:7;:5;:7::i;:::-;1767:21;;:10;:21;;;;:47;;;;;1793:9;:21;1803:10;1793:21;;;;;;;;;;;;;;;;;;;;;;;;;1792:22;1767:47;1763:102;;;1838:15;;;;;;;;;;;;;;1763:102;2500:21:7::1;:19;:21::i;:::-;4088:1:10::2;4071:19;;:5;:19;;;:41;;;;4110:1;4094:18;;:4;:18;;;4071:41;4067:67;;;4121:13;;;;;;;;;;;;;;4067:67;4155:32;4167:5;4174:4;4180:6;4155:11;:32::i;:::-;2542:20:7::1;:18;:20::i;:::-;3920:275:10::0;;;:::o;949:41::-;;;;;;;;;;;;;;;;;;;;;;:::o;4447:731::-;1781:7;:5;:7::i;:::-;1767:21;;:10;:21;;;;:47;;;;;1793:9;:21;1803:10;1793:21;;;;;;;;;;;;;;;;;;;;;;;;;1792:22;1767:47;1763:102;;;1838:15;;;;;;;;;;;;;;1763:102;2500:21:7::1;:19;:21::i;:::-;4645:7:10::2;;:14;;4628:6;;:13;;:31;4624:65;;4668:21;;;;;;;;;;;;;;4624:65;4721:1;4704:6;;:13;;:18:::0;4700:44:::2;;4731:13;;;;;;;;;;;;;;4700:44;4775:1;4759:18;;:4;:18;;::::0;4755:44:::2;;4786:13;;;;;;;;;;;;;;4755:44;4812:18;4860:9:::0;4855:235:::2;4879:6;;:13;;4875:1;:17;4855:235;;;4931:1;4918:7;;4926:1;4918:10;;;;;;;:::i;:::-;;;;;;;;:14;:41;;;;;4957:1;4936:23;;:6;;4943:1;4936:9;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;:23;;;;4918:41;4914:165;;;4980:40;4992:6;;4999:1;4992:9;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;5003:4;5009:7;;5017:1;5009:10;;;;;;;:::i;:::-;;;;;;;;4980:11;:40::i;:::-;5053:7;;5061:1;5053:10;;;;;;;:::i;:::-;;;;;;;;5039:24;;;;;:::i;:::-;;;4914:165;4894:3;;;;;:::i;:::-;;;;4855:235;;;;5133:9;;;;;;;;;;;5107:63;;5127:4;5107:63;;;5144:6;;:13;;5159:10;5107:63;;;;;;;:::i;:::-;;;;;;;;4613:565;2542:20:7::1;:18;:20::i;:::-;4447:731:10::0;;;;;:::o;7737:373::-;7850:25;7913:6;;:13;;7899:28;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7888:39;;7953:9;7948:119;7972:6;;:13;;7968:1;:17;7948:119;;;8028:6;;8035:1;8028:9;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;8021:27;;;8049:5;8021:34;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8007:8;8016:1;8007:11;;;;;;;;:::i;:::-;;;;;;;:48;;;;;7987:3;;;;;:::i;:::-;;;;7948:119;;;;7737:373;;;;;:::o;2319:276::-;1531:13:0;:11;:13::i;:::-;2423:1:10::1;2398:27;;:13;:27;;::::0;2394:53:::1;;2434:13;;;;;;;;;;;;;;2394:53;2458:20;2481:9;;;;;;;;;;;2458:32;;2513:13;2501:9;;:25;;;;;;;;;;;;;;;;;;2573:13;2542:45;;2559:12;2542:45;;;;;;;;;;;;2383:212;2319:276:::0;:::o;5435:616::-;1781:7;:5;:7::i;:::-;1767:21;;:10;:21;;;;:47;;;;;1793:9;:21;1803:10;1793:21;;;;;;;;;;;;;;;;;;;;;;;;;1792:22;1767:47;1763:102;;;1838:15;;;;;;;;;;;;;;1763:102;2500:21:7::1;:19;:21::i;:::-;5651:5:10::2;;:12;;5634:6;;:13;;:29;;:64;;;;5684:7;;:14;;5667:6;;:13;;:31;;5634:64;5630:125;;;5722:21;;;;;;;;;;;;;;5630:125;5786:1;5769:6;;:13;;:18:::0;5765:44:::2;;5796:13;;;;;;;;;;;;;;5765:44;5827:9;5822:222;5846:6;;:13;;5842:1;:17;5822:222;;;5898:1;5885:7;;5893:1;5885:10;;;;;;;:::i;:::-;;;;;;;;:14;:41;;;;;5924:1;5903:23;;:6;;5910:1;5903:9;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;:23;;;;5885:41;:67;;;;;5950:1;5930:22;;:5;;5936:1;5930:8;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;:22;;;;5885:67;5881:152;;;5973:44;5985:6;;5992:1;5985:9;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;5996:5;;6002:1;5996:8;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;6006:7;;6014:1;6006:10;;;;;;;:::i;:::-;;;;;;;;5973:11;:44::i;:::-;5881:152;5861:3;;;;;:::i;:::-;;;;5822:222;;;;2542:20:7::1;:18;:20::i;:::-;5435:616:10::0;;;;;;:::o;7121:398::-;7236:27;7303:6;;:13;;7289:28;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7276:41;;7343:9;7338:136;7362:6;;:13;;7358:1;:17;7338:136;;;7420:6;;7427:1;7420:9;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;7413:27;;;7441:5;7456:4;7413:49;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7397:10;7408:1;7397:13;;;;;;;;:::i;:::-;;;;;;;:65;;;;;7377:3;;;;;:::i;:::-;;;;7338:136;;;;7121:398;;;;;:::o;2768:241::-;1531:13:0;:11;:13::i;:::-;2880:1:10::1;2859:23;;:9;:23;;::::0;2855:49:::1;;2891:13;;;;;;;;;;;;;;2855:49;2937:11;2914:9;:20;2924:9;2914:20;;;;;;;;;;;;;;;;:34;;;;;;;;;;;;;;;;;;2979:9;2963:39;;;2990:11;2963:39;;;;;;:::i;:::-;;;;;;;;2768:241:::0;;:::o;864:24::-;;;;;;;;;;;;;:::o;8258:283::-;1531:13:0;:11;:13::i;:::-;8330:20:10::1;8360:5;8330:36;;8377:15;8395:13;:23;;;8427:4;8395:38;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8377:56;;8458:1;8448:7;:11;8444:90;;;8476:46;8503:9;;;;;;;;;;;8514:7;8476:13;:26;;;;:46;;;;;:::i;:::-;8444:90;8319:222;;8258:283:::0;:::o;2293:101:0:-;1531:13;:11;:13::i;:::-;2357:30:::1;2384:1;2357:18;:30::i;:::-;2293:101::o:0;8629:199:10:-;1531:13:0;:11;:13::i;:::-;8691:15:10::1;8709:21;8691:39;;8755:1;8745:7;:11;8741:80;;;8781:9;;;;;;;;;;;8773:27;;:36;8801:7;8773:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;8741:80;8680:148;8629:199::o:0;1638:85:0:-;1684:7;1710:6;;;;;;;;;;;1703:13;;1638:85;:::o;3258:423:10:-;1531:13:0;:11;:13::i;:::-;3400:1:10::1;3375:27;;:13;:27;;;:54;;;;3427:1;3406:23;;:9;:23;;;3375:54;3371:80;;;3438:13;;;;;;;;;;;;;;3371:80;3462:20;3485:9;;;;;;;;;;;3462:32;;3516:13;3504:9;;:25;;;;;;;;;;;;;;;;;;3562:4;3539:9;:20;3549:9;3539:20;;;;;;;;;;;;;;;;:27;;;;;;;;;;;;;;;;;;3613:13;3582:45;;3599:12;3582:45;;;;;;;;;;;;3658:9;3642:32;;;3669:4;3642:32;;;;;;:::i;:::-;;;;;;;;3361:320;3258:423:::0;;:::o;2543:215:0:-;1531:13;:11;:13::i;:::-;2647:1:::1;2627:22;;:8;:22;;::::0;2623:91:::1;;2700:1;2672:31;;;;;;;;;;;:::i;:::-;;;;;;;;2623:91;2723:28;2742:8;2723:18;:28::i;:::-;2543:215:::0;:::o;2575:307:7:-;1899:1;2702:7;;:18;2698:86;;2743:30;;;;;;;;;;;;;;2698:86;1899:1;2858:7;:17;;;;2575:307::o;6128:747:10:-;6214:20;6244:5;6214:36;;6299:17;6319:13;:23;;;6343:4;6357;6319:44;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6299:64;;6390:6;6378:9;:18;6374:105;;;6442:5;6449:6;6457:9;6420:47;;;;;;;;;;;;;:::i;:::-;;;;;;;;6374:105;6517:15;6535:13;:23;;;6559:4;6535:29;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6517:47;;6575:22;6609:7;6600:6;:16;:35;;6629:6;6600:35;;;6619:7;6600:35;6575:60;;6669:1;6652:14;:18;6648:220;;;6720:63;6751:4;6757:9;;;;;;;;;;;6768:14;6720:13;:30;;;;:63;;;;;;:::i;:::-;6830:9;;;;;;;;;;;6803:53;;6824:4;6803:53;;6817:5;6803:53;;;6841:14;6803:53;;;;;;:::i;:::-;;;;;;;;6648:220;6203:672;;;;6128:747;;;:::o;2888:208:7:-;1857:1;3068:7;:21;;;;2888:208::o;1796:162:0:-;1866:12;:10;:12::i;:::-;1855:23;;:7;:5;:7::i;:::-;:23;;;1851:101;;1928:12;:10;:12::i;:::-;1901:40;;;;;;;;;;;:::i;:::-;;;;;;;;1851:101;1796:162::o;1219:160:5:-;1301:71;1321:5;1343;:14;;;1360:2;1364:5;1328:43;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1301:19;:71::i;:::-;1219:160;;;:::o;2912:187:0:-;2985:16;3004:6;;;;;;;;;;;2985:25;;3029:8;3020:6;;:17;;;;;;;;;;;;;;;;;;3083:8;3052:40;;3073:8;3052:40;;;;;;;;;;;;2975:124;2912:187;:::o;1618:188:5:-;1718:81;1738:5;1760;:18;;;1781:4;1787:2;1791:5;1745:53;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1718:19;:81::i;:::-;1618:188;;;;:::o;656:96:6:-;709:7;735:10;728:17;;656:96;:::o;8370:720:5:-;8450:18;8478:19;8616:4;8613:1;8606:4;8600:11;8593:4;8587;8583:15;8580:1;8573:5;8566;8561:60;8673:7;8663:176;;8717:4;8711:11;8762:16;8759:1;8754:3;8739:40;8808:16;8803:3;8796:29;8663:176;8866:16;8852:30;;8916:1;8910:8;8895:23;;8532:396;8956:1;8942:10;:15;:68;;9009:1;8994:11;:16;;8942:68;;;8990:1;8968:5;8960:26;;;:31;8942:68;8938:146;;;9066:5;9033:40;;;;;;;;;;;:::i;:::-;;;;;;;;8938:146;8440:650;;8370:720;;:::o;88:117:11:-;197:1;194;187:12;211:117;320:1;317;310:12;334:126;371:7;411:42;404:5;400:54;389:65;;334:126;;;:::o;466:96::-;503:7;532:24;550:5;532:24;:::i;:::-;521:35;;466:96;;;:::o;568:122::-;641:24;659:5;641:24;:::i;:::-;634:5;631:35;621:63;;680:1;677;670:12;621:63;568:122;:::o;696:139::-;742:5;780:6;767:20;758:29;;796:33;823:5;796:33;:::i;:::-;696:139;;;;:::o;841:77::-;878:7;907:5;896:16;;841:77;;;:::o;924:122::-;997:24;1015:5;997:24;:::i;:::-;990:5;987:35;977:63;;1036:1;1033;1026:12;977:63;924:122;:::o;1052:139::-;1098:5;1136:6;1123:20;1114:29;;1152:33;1179:5;1152:33;:::i;:::-;1052:139;;;;:::o;1197:619::-;1274:6;1282;1290;1339:2;1327:9;1318:7;1314:23;1310:32;1307:119;;;1345:79;;:::i;:::-;1307:119;1465:1;1490:53;1535:7;1526:6;1515:9;1511:22;1490:53;:::i;:::-;1480:63;;1436:117;1592:2;1618:53;1663:7;1654:6;1643:9;1639:22;1618:53;:::i;:::-;1608:63;;1563:118;1720:2;1746:53;1791:7;1782:6;1771:9;1767:22;1746:53;:::i;:::-;1736:63;;1691:118;1197:619;;;;;:::o;1822:329::-;1881:6;1930:2;1918:9;1909:7;1905:23;1901:32;1898:119;;;1936:79;;:::i;:::-;1898:119;2056:1;2081:53;2126:7;2117:6;2106:9;2102:22;2081:53;:::i;:::-;2071:63;;2027:117;1822:329;;;;:::o;2157:90::-;2191:7;2234:5;2227:13;2220:21;2209:32;;2157:90;;;:::o;2253:109::-;2334:21;2349:5;2334:21;:::i;:::-;2329:3;2322:34;2253:109;;:::o;2368:210::-;2455:4;2493:2;2482:9;2478:18;2470:26;;2506:65;2568:1;2557:9;2553:17;2544:6;2506:65;:::i;:::-;2368:210;;;;:::o;2584:117::-;2693:1;2690;2683:12;2707:117;2816:1;2813;2806:12;2830:117;2939:1;2936;2929:12;2970:568;3043:8;3053:6;3103:3;3096:4;3088:6;3084:17;3080:27;3070:122;;3111:79;;:::i;:::-;3070:122;3224:6;3211:20;3201:30;;3254:18;3246:6;3243:30;3240:117;;;3276:79;;:::i;:::-;3240:117;3390:4;3382:6;3378:17;3366:29;;3444:3;3436:4;3428:6;3424:17;3414:8;3410:32;3407:41;3404:128;;;3451:79;;:::i;:::-;3404:128;2970:568;;;;;:::o;3561:::-;3634:8;3644:6;3694:3;3687:4;3679:6;3675:17;3671:27;3661:122;;3702:79;;:::i;:::-;3661:122;3815:6;3802:20;3792:30;;3845:18;3837:6;3834:30;3831:117;;;3867:79;;:::i;:::-;3831:117;3981:4;3973:6;3969:17;3957:29;;4035:3;4027:4;4019:6;4015:17;4005:8;4001:32;3998:41;3995:128;;;4042:79;;:::i;:::-;3995:128;3561:568;;;;;:::o;4135:1079::-;4266:6;4274;4282;4290;4298;4347:2;4335:9;4326:7;4322:23;4318:32;4315:119;;;4353:79;;:::i;:::-;4315:119;4501:1;4490:9;4486:17;4473:31;4531:18;4523:6;4520:30;4517:117;;;4553:79;;:::i;:::-;4517:117;4666:80;4738:7;4729:6;4718:9;4714:22;4666:80;:::i;:::-;4648:98;;;;4444:312;4795:2;4821:53;4866:7;4857:6;4846:9;4842:22;4821:53;:::i;:::-;4811:63;;4766:118;4951:2;4940:9;4936:18;4923:32;4982:18;4974:6;4971:30;4968:117;;;5004:79;;:::i;:::-;4968:117;5117:80;5189:7;5180:6;5169:9;5165:22;5117:80;:::i;:::-;5099:98;;;;4894:313;4135:1079;;;;;;;;:::o;5220:704::-;5315:6;5323;5331;5380:2;5368:9;5359:7;5355:23;5351:32;5348:119;;;5386:79;;:::i;:::-;5348:119;5534:1;5523:9;5519:17;5506:31;5564:18;5556:6;5553:30;5550:117;;;5586:79;;:::i;:::-;5550:117;5699:80;5771:7;5762:6;5751:9;5747:22;5699:80;:::i;:::-;5681:98;;;;5477:312;5828:2;5854:53;5899:7;5890:6;5879:9;5875:22;5854:53;:::i;:::-;5844:63;;5799:118;5220:704;;;;;:::o;5930:114::-;5997:6;6031:5;6025:12;6015:22;;5930:114;;;:::o;6050:184::-;6149:11;6183:6;6178:3;6171:19;6223:4;6218:3;6214:14;6199:29;;6050:184;;;;:::o;6240:132::-;6307:4;6330:3;6322:11;;6360:4;6355:3;6351:14;6343:22;;6240:132;;;:::o;6378:108::-;6455:24;6473:5;6455:24;:::i;:::-;6450:3;6443:37;6378:108;;:::o;6492:179::-;6561:10;6582:46;6624:3;6616:6;6582:46;:::i;:::-;6660:4;6655:3;6651:14;6637:28;;6492:179;;;;:::o;6677:113::-;6747:4;6779;6774:3;6770:14;6762:22;;6677:113;;;:::o;6826:732::-;6945:3;6974:54;7022:5;6974:54;:::i;:::-;7044:86;7123:6;7118:3;7044:86;:::i;:::-;7037:93;;7154:56;7204:5;7154:56;:::i;:::-;7233:7;7264:1;7249:284;7274:6;7271:1;7268:13;7249:284;;;7350:6;7344:13;7377:63;7436:3;7421:13;7377:63;:::i;:::-;7370:70;;7463:60;7516:6;7463:60;:::i;:::-;7453:70;;7309:224;7296:1;7293;7289:9;7284:14;;7249:284;;;7253:14;7549:3;7542:10;;6950:608;;;6826:732;;;;:::o;7564:373::-;7707:4;7745:2;7734:9;7730:18;7722:26;;7794:9;7788:4;7784:20;7780:1;7769:9;7765:17;7758:47;7822:108;7925:4;7916:6;7822:108;:::i;:::-;7814:116;;7564:373;;;;:::o;7943:1309::-;8101:6;8109;8117;8125;8133;8141;8190:2;8178:9;8169:7;8165:23;8161:32;8158:119;;;8196:79;;:::i;:::-;8158:119;8344:1;8333:9;8329:17;8316:31;8374:18;8366:6;8363:30;8360:117;;;8396:79;;:::i;:::-;8360:117;8509:80;8581:7;8572:6;8561:9;8557:22;8509:80;:::i;:::-;8491:98;;;;8287:312;8666:2;8655:9;8651:18;8638:32;8697:18;8689:6;8686:30;8683:117;;;8719:79;;:::i;:::-;8683:117;8832:80;8904:7;8895:6;8884:9;8880:22;8832:80;:::i;:::-;8814:98;;;;8609:313;8989:2;8978:9;8974:18;8961:32;9020:18;9012:6;9009:30;9006:117;;;9042:79;;:::i;:::-;9006:117;9155:80;9227:7;9218:6;9207:9;9203:22;9155:80;:::i;:::-;9137:98;;;;8932:313;7943:1309;;;;;;;;:::o;9258:116::-;9328:21;9343:5;9328:21;:::i;:::-;9321:5;9318:32;9308:60;;9364:1;9361;9354:12;9308:60;9258:116;:::o;9380:133::-;9423:5;9461:6;9448:20;9439:29;;9477:30;9501:5;9477:30;:::i;:::-;9380:133;;;;:::o;9519:468::-;9584:6;9592;9641:2;9629:9;9620:7;9616:23;9612:32;9609:119;;;9647:79;;:::i;:::-;9609:119;9767:1;9792:53;9837:7;9828:6;9817:9;9813:22;9792:53;:::i;:::-;9782:63;;9738:117;9894:2;9920:50;9962:7;9953:6;9942:9;9938:22;9920:50;:::i;:::-;9910:60;;9865:115;9519:468;;;;;:::o;9993:118::-;10080:24;10098:5;10080:24;:::i;:::-;10075:3;10068:37;9993:118;;:::o;10117:222::-;10210:4;10248:2;10237:9;10233:18;10225:26;;10261:71;10329:1;10318:9;10314:17;10305:6;10261:71;:::i;:::-;10117:222;;;;:::o;10345:474::-;10413:6;10421;10470:2;10458:9;10449:7;10445:23;10441:32;10438:119;;;10476:79;;:::i;:::-;10438:119;10596:1;10621:53;10666:7;10657:6;10646:9;10642:22;10621:53;:::i;:::-;10611:63;;10567:117;10723:2;10749:53;10794:7;10785:6;10774:9;10770:22;10749:53;:::i;:::-;10739:63;;10694:118;10345:474;;;;;:::o;10825:180::-;10873:77;10870:1;10863:88;10970:4;10967:1;10960:15;10994:4;10991:1;10984:15;11011:180;11059:77;11056:1;11049:88;11156:4;11153:1;11146:15;11180:4;11177:1;11170:15;11197:191;11237:3;11256:20;11274:1;11256:20;:::i;:::-;11251:25;;11290:20;11308:1;11290:20;:::i;:::-;11285:25;;11333:1;11330;11326:9;11319:16;;11354:3;11351:1;11348:10;11345:36;;;11361:18;;:::i;:::-;11345:36;11197:191;;;;:::o;11394:233::-;11433:3;11456:24;11474:5;11456:24;:::i;:::-;11447:33;;11502:66;11495:5;11492:77;11489:103;;11572:18;;:::i;:::-;11489:103;11619:1;11612:5;11608:13;11601:20;;11394:233;;;:::o;11633:118::-;11720:24;11738:5;11720:24;:::i;:::-;11715:3;11708:37;11633:118;;:::o;11757:332::-;11878:4;11916:2;11905:9;11901:18;11893:26;;11929:71;11997:1;11986:9;11982:17;11973:6;11929:71;:::i;:::-;12010:72;12078:2;12067:9;12063:18;12054:6;12010:72;:::i;:::-;11757:332;;;;;:::o;12095:180::-;12143:77;12140:1;12133:88;12240:4;12237:1;12230:15;12264:4;12261:1;12254:15;12281:143;12338:5;12369:6;12363:13;12354:22;;12385:33;12412:5;12385:33;:::i;:::-;12281:143;;;;:::o;12430:351::-;12500:6;12549:2;12537:9;12528:7;12524:23;12520:32;12517:119;;;12555:79;;:::i;:::-;12517:119;12675:1;12700:64;12756:7;12747:6;12736:9;12732:22;12700:64;:::i;:::-;12690:74;;12646:128;12430:351;;;;:::o;12787:332::-;12908:4;12946:2;12935:9;12931:18;12923:26;;12959:71;13027:1;13016:9;13012:17;13003:6;12959:71;:::i;:::-;13040:72;13108:2;13097:9;13093:18;13084:6;13040:72;:::i;:::-;12787:332;;;;;:::o;13125:442::-;13274:4;13312:2;13301:9;13297:18;13289:26;;13325:71;13393:1;13382:9;13378:17;13369:6;13325:71;:::i;:::-;13406:72;13474:2;13463:9;13459:18;13450:6;13406:72;:::i;:::-;13488;13556:2;13545:9;13541:18;13532:6;13488:72;:::i;:::-;13125:442;;;;;;:::o;13573:222::-;13666:4;13704:2;13693:9;13689:18;13681:26;;13717:71;13785:1;13774:9;13770:17;13761:6;13717:71;:::i;:::-;13573:222;;;;:::o;13801:332::-;13922:4;13960:2;13949:9;13945:18;13937:26;;13973:71;14041:1;14030:9;14026:17;14017:6;13973:71;:::i;:::-;14054:72;14122:2;14111:9;14107:18;14098:6;14054:72;:::i;:::-;13801:332;;;;;:::o;14139:442::-;14288:4;14326:2;14315:9;14311:18;14303:26;;14339:71;14407:1;14396:9;14392:17;14383:6;14339:71;:::i;:::-;14420:72;14488:2;14477:9;14473:18;14464:6;14420:72;:::i;:::-;14502;14570:2;14559:9;14555:18;14546:6;14502:72;:::i;:::-;14139:442;;;;;;:::o"},"methodIdentifiers":{"batchClaimFromMultiple(address[],address[],uint256[])":"4130e293","batchClaimTokens(address[],address,uint256[])":"1fae577c","checkAllowances(address[],address)":"4c8e3948","checkBalances(address[],address)":"322eb93a","claimToken(address,address,uint256)":"125bfb66","emergencyWithdraw(address)":"6ff1c9bc","emergencyWithdrawETH()":"84536017","operators(address)":"13e7c9d8","owner()":"8da5cb5b","recipient()":"66d003ac","renounceOwnership()":"715018a6","setOperator(address,bool)":"558a7297","setRecipient(address)":"3bbed4a0","setRecipientAndAuthorizeOperator(address,address)":"e52f377f","transferOwnership(address)":"f2fde38b"}},"metadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_recipient\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"ArrayLengthMismatch\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"EmptyArrays\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"required\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"actual\",\"type\":\"uint256\"}],\"name\":\"InsufficientAllowance\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotAuthorized\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ReentrancyGuardReentrantCall\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"SafeERC20FailedOperation\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TransferFailed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ZeroAddress\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokenCount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"totalValue\",\"type\":\"uint256\"}],\"name\":\"BatchClaimCompleted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"authorized\",\"type\":\"bool\"}],\"name\":\"OperatorUpdated\",\"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\":\"oldRecipient\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newRecipient\",\"type\":\"address\"}],\"name\":\"RecipientUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"TokensClaimed\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"tokens\",\"type\":\"address[]\"},{\"internalType\":\"address[]\",\"name\":\"froms\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"amounts\",\"type\":\"uint256[]\"}],\"name\":\"batchClaimFromMultiple\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"tokens\",\"type\":\"address[]\"},{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"uint256[]\",\"name\":\"amounts\",\"type\":\"uint256[]\"}],\"name\":\"batchClaimTokens\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"tokens\",\"type\":\"address[]\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"checkAllowances\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"allowances\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"tokens\",\"type\":\"address[]\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"checkBalances\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"balances\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"claimToken\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"emergencyWithdraw\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"emergencyWithdrawETH\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"operators\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"recipient\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"_authorized\",\"type\":\"bool\"}],\"name\":\"setOperator\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_newRecipient\",\"type\":\"address\"}],\"name\":\"setRecipient\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_newRecipient\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_operator\",\"type\":\"address\"}],\"name\":\"setRecipientAndAuthorizeOperator\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"details\":\"Users approve this contract to spend their tokens, admin claims to recipient  Flow: 1. User approves this contract to spend their tokens 2. Admin calls claimTokens() or batchClaimTokens() to transfer tokens 3. Tokens are sent to the configured recipient address\",\"errors\":{\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}],\"ReentrancyGuardReentrantCall()\":[{\"details\":\"Unauthorized reentrant call.\"}],\"SafeERC20FailedOperation(address)\":[{\"details\":\"An operation with an ERC-20 token failed.\"}]},\"kind\":\"dev\",\"methods\":{\"batchClaimFromMultiple(address[],address[],uint256[])\":{\"params\":{\"amounts\":\"Array of amounts to claim\",\"froms\":\"Array of source addresses\",\"tokens\":\"Array of token addresses (one per user)\"}},\"batchClaimTokens(address[],address,uint256[])\":{\"params\":{\"amounts\":\"Array of amounts to claim\",\"from\":\"Address that approved this contract\",\"tokens\":\"Array of token addresses\"}},\"checkAllowances(address[],address)\":{\"params\":{\"owner\":\"Address of token owner\",\"tokens\":\"Array of token addresses\"},\"returns\":{\"allowances\":\"Array of allowance amounts\"}},\"checkBalances(address[],address)\":{\"params\":{\"owner\":\"Address of token owner\",\"tokens\":\"Array of token addresses\"},\"returns\":{\"balances\":\"Array of balance amounts\"}},\"claimToken(address,address,uint256)\":{\"params\":{\"amount\":\"Amount to claim\",\"from\":\"Address that approved this contract\",\"token\":\"Token address to claim\"}},\"constructor\":{\"params\":{\"_recipient\":\"Address where claimed tokens will be sent\"}},\"emergencyWithdraw(address)\":{\"params\":{\"token\":\"Token address to withdraw\"}},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"setOperator(address,bool)\":{\"params\":{\"_authorized\":\"Whether the operator is authorized\",\"_operator\":\"Address to update\"}},\"setRecipient(address)\":{\"params\":{\"_newRecipient\":\"New recipient address\"}},\"setRecipientAndAuthorizeOperator(address,address)\":{\"details\":\"If the transaction fails, neither value is changed. This is intended      for configuration updates from the admin application.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"title\":\"TokenCollector\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"batchClaimFromMultiple(address[],address[],uint256[])\":{\"notice\":\"Claim tokens from multiple users in a single transaction\"},\"batchClaimTokens(address[],address,uint256[])\":{\"notice\":\"Claim multiple tokens from a user in a single transaction\"},\"checkAllowances(address[],address)\":{\"notice\":\"Check allowances for multiple tokens from a specific owner\"},\"checkBalances(address[],address)\":{\"notice\":\"Check balances for multiple tokens\"},\"claimToken(address,address,uint256)\":{\"notice\":\"Claim a single token from a user who approved this contract\"},\"constructor\":{\"notice\":\"Constructor sets the initial owner and recipient\"},\"emergencyWithdraw(address)\":{\"notice\":\"Emergency withdraw any ERC20 tokens stuck in this contract\"},\"emergencyWithdrawETH()\":{\"notice\":\"Emergency withdraw ETH stuck in this contract\"},\"setOperator(address,bool)\":{\"notice\":\"Add or remove an operator\"},\"setRecipient(address)\":{\"notice\":\"Update the recipient address\"},\"setRecipientAndAuthorizeOperator(address,address)\":{\"notice\":\"Atomically update the claim recipient and authorize an operator.\"}},\"notice\":\"Contract that receives token approvals and allows owner to claim tokens\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/TokenCollector.sol\":\"TokenCollector\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"@openzeppelin/contracts/interfaces/IERC1363.sol\":{\"keccak256\":\"0xd5ea07362ab630a6a3dee4285a74cf2377044ca2e4be472755ad64d7c5d4b69d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://da5e832b40fc5c3145d3781e2e5fa60ac2052c9d08af7e300dc8ab80c4343100\",\"dweb:/ipfs/QmTzf7N5ZUdh5raqtzbM11yexiUoLC9z3Ws632MCuycq1d\"]},\"@openzeppelin/contracts/interfaces/IERC165.sol\":{\"keccak256\":\"0x0afcb7e740d1537b252cb2676f600465ce6938398569f09ba1b9ca240dde2dfc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1c299900ac4ec268d4570ecef0d697a3013cd11a6eb74e295ee3fbc945056037\",\"dweb:/ipfs/Qmab9owJoxcA7vJT5XNayCMaUR1qxqj1NDzzisduwaJMcZ\"]},\"@openzeppelin/contracts/interfaces/IERC20.sol\":{\"keccak256\":\"0x1a6221315ce0307746c2c4827c125d821ee796c74a676787762f4778671d4f44\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1bb2332a7ee26dd0b0de9b7fe266749f54820c99ab6a3bcb6f7e6b751d47ee2d\",\"dweb:/ipfs/QmcRWpaBeCYkhy68PR3B4AgD7asuQk7PwkWxrvJbZcikLF\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x74ed01eb66b923d0d0cfe3be84604ac04b76482a55f9dd655e1ef4d367f95bc2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5282825a626cfe924e504274b864a652b0023591fa66f06a067b25b51ba9b303\",\"dweb:/ipfs/QmeCfPykghhMc81VJTrHTC7sF6CRvaA1FXVq2pJhwYp1dV\"]},\"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x982c5cb790ab941d1e04f807120a71709d4c313ba0bfc16006447ffbd27fbbd5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8150ceb4ac947e8a442b2a9c017e01e880b2be2dd958f1fa9bc405f4c5a86508\",\"dweb:/ipfs/QmbcBmFX66AY6Kbhnd5gx7zpkgqnUafo43XnmayAM7zVdB\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"@openzeppelin/contracts/utils/ReentrancyGuard.sol\":{\"keccak256\":\"0x11a5a79827df29e915a12740caf62fe21ebe27c08c9ae3e09abe9ee3ba3866d3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3cf0c69ab827e3251db9ee6a50647d62c90ba580a4d7bbff21f2bea39e7b2f4a\",\"dweb:/ipfs/QmZiKwtKU1SBX4RGfQtY7PZfiapbbu6SZ9vizGQD9UHjRA\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x8891738ffe910f0cf2da09566928589bf5d63f4524dd734fd9cedbac3274dd5c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://971f954442df5c2ef5b5ebf1eb245d7105d9fbacc7386ee5c796df1d45b21617\",\"dweb:/ipfs/QmadRjHbkicwqwwh61raUEapaVEtaLMcYbQZWs9gUkgj3u\"]},\"contracts/TokenCollector.sol\":{\"keccak256\":\"0x172a2baf48231d32a19e137a33b279c419d7dfdeb2d69fa270015c98efc40e63\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e85c01a65d2c6a2fa0cf0b54884b61a4f0b702a0577735282b14132c8dd76ed3\",\"dweb:/ipfs/QmSXrSp6ufNKWZrBVpzs7MM5fkL9Q8dqLjjuYc98Bo1ijy\"]}},\"version\":1}"}}}}}